2017-04-08 32 views
1

我必須將此程序中的正方形轉換爲使用fillPolygon方法在新類中的「杯子」,但不能爲我的生活弄清楚這一點。我必須在每邊減少5的頂部寬度。我在搜索中找到的所有東西都向我展示瞭如何製作三角形或更復雜的形狀,但沒有像這種形狀。任何援助將不勝感激。這是變化後的樣子。如何使用fillPolygon將正方形轉換爲

Screenshot of 'Cups'

package cs520.hw4.part1; 



import javax.swing.JFrame; 

import java.awt.Color; 
import java.awt.Graphics; 
@SuppressWarnings("serial") 

public class Cups1 extends JFrame{ 

int startX, startY, cupWidth, cupHeight; 
int baseLength; 
int cupSpacing; 


public Cups1() 
{ 

    super("My Squares"); 


    startX = 100; 
    startY = 300; 
    cupWidth = 25; 
    cupHeight = 40; 
    baseLength = 7; 
    cupSpacing = 6; 

} 


public void paint(Graphics g) 
{ 

    super.paint(g);  




    for (int row = 0; row < baseLength; row++) { 
     for (int col = 0; col < (baseLength - row); col++) 
     { 


      if ((row) % 2 == 0){ 
       g.setColor(Color.RED);} 
      else 
       g.setColor(Color.BLUE); 


      g.fillRect(startX + (row * ((cupWidth + cupSpacing)/2)) + (col * (cupSpacing + cupWidth)), startY - row*cupHeight, cupWidth, cupHeight); 
     } 
      try { 
       Thread.sleep(500); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 

    } 




public static void main(String[] args) 
{ 
    Cups1 app = new Cups1(); 

    app.setSize(550,550); 
    app.setVisible(true); 

    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 


} 
+0

事情是怎麼回事?你做了嗎?你需要更多的幫助嗎? – strash

回答

0

你可以嘗試創建一些圈子和隱藏其中的一部分來實現你所需要的

void drawCircleByCenter(Graphics g, int x, int y, int radius){ 
     //g.setColor(Color.LIGHT_GRAY); 
     g.drawOval(x-radius, y-radius, 2*radius, 2*radius); 
    } 

,或者你可以上傳你試圖畫什麼的截圖。

+1

添加了截圖的鏈接。謝謝 – Affekonig

0

更好地創建一個方法,繪製一個帶有顏色(紅色/藍色)的大矩形作爲參數,並在裏面繪製一個大的矩形,然後在它上面繪製一個帶有背景色的小矩形。然後在主要方法中創建調用大圖的邏輯。

相關問題