2014-11-24 73 views
0

我目前正在研究類中的一個程序,但被卡在一個點,我必須使用for循環來繪製多維數據集的線條。任何人都可以在這裏幫我一下嗎?我在網上尋找幫助,但無法使用FOR循環獲得此程序的幫助。使用數組和循環創建一個立方體

原問題: 編寫繪製立方體的應用程序。使用類GeneralPath和類Graphics2D的方法繪製。

這是我下來迄今:

import java.awt.Color; 
import java.awt.geom.GeneralPath; 
import java.awt.Graphics; 
import java.awt.Graphics2D; 
import javax.swing.JPanel; 

public class CubeJPanel extends JPanel 
{ 

    public void paintComponent(Graphics g) 
    { 
     super.paintComponent(g); 

     // base one: coordinates for front of the cube, point 0, 1, 2, 3, 4 
     int base1X[] = { 100, 100, 200, 200, 100 }; 
     int base1Y[] = { 100, 200, 200, 100, 100 }; 

     // base two: coordinates for back of the cube, point 0, 1, 2, 3, 4 
     int base2X[] = { 75, 75, 175, 175, 75 }; 
     int base2Y[] = { 75, 175, 175 ,75, 75 }; 

     Graphics2D g2d = (Graphics2D) g; 
     g2d.setColor(Color.red); 

     GeneralPath cube = new GeneralPath(); 

// this is where i'm having trouble. I know i'm suppose to for loop and arrays to draw out the lines of the cube. 



    g2d.draw(cube); 
    } // end method paintComponent 
} // end class CubeJPanel 

回答

0

的base1X,base1Y爲x沿繪圖區域的座標,用(0,0)是面板的左上角。要使用你需要像這樣一個的GeneralPath:

GeneralPath cube = new GeneralPath(); 
cube.moveTo(base1x[0], base1y[0]); 

for(int i=1; i<base1x.length(); i++) 
{ 
    cube.lineTo(base1x[i], base1y[i]); 
} 
cube.closePath(); 

上面的代碼段將繪製一個正方形,這是所有的點在BASE1。基本上把GeneralPath看作是連接點。您首先必須將路徑移至起始位置。 moveTo會將抽屜移到該點,而不會畫出線條。 lineTo將從當前點到moveTo中的點繪製一條線。最後,一定要關閉路徑。

找出繪製點的正確順序,你應該能夠弄清楚如何迭代點。

相關問題