2014-11-24 4 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 является х координатами вдоль области рисования, с (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. Наконец, обязательно закройте путь.

Извлеките правильный порядок, чтобы нарисовать точки, и вы должны выяснить, как перебирать точки.

Смежные вопросы