Я пытаюсь нарисовать 3D-куб в соответствии с этим заданием. (http://compscimadison.weebly.com/uploads/5/8/7/4/58741529/graphicslab03.pdf)
Я попытался найти способ успешно нарисовать ромб (или многоугольник) в Java. Я не нашел правильного решения, которое можно было бы использовать в моей программе.
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
public class Lab06vst extends Canvas {
public static void main(String[] args) {
JFrame frame = new JFrame("My Drawing");
Canvas canvas = new Lab06vst();
canvas.setSize(1000, 650);
frame.add(canvas);
frame.pack();
frame.setVisible(true);
}
public void paint(Graphics g)
{
// Draw Grid
g.drawRect(10,10,780,580);
g.drawLine(400,10,400,590);
g.drawLine(10,300,790,300);
// Draw Random Lines
for (int i = 0; i<=100; i++)
{
int R = (int)(Math.random()*256);
int G = (int)(Math.random()*256);
int B= (int)(Math.random()*256);
Color color = new Color(R, G, B);
g.setColor(color);
int x1 = (int) (Math.random()*390) + 10;
int y1 = (int) (Math.random()*290) + 10;
int x2 = (int) (Math.random()*390) + 10;
int y2 = (int) (Math.random()*290) + 10;
g.setColor(color);
g.drawLine(x1, y1, x2, y2);
}
// Draw Random Squares
for (int i = 0; i<=100; i++)
{
int R = (int)(Math.random()*256);
int G = (int)(Math.random()*256);
int B= (int)(Math.random()*256);
Color color = new Color(R, G, B);
int x1 = (int) (Math.random()*340) + 400;
int y1 = (int) (Math.random()*250) + 10;
g.setColor(color);
g.fillRect(x1, y1, 50, 50);
}
// Draw Random Circles
for (int i = 0; i<=100; i++)
{
int R = (int)(Math.random()*256);
int G = (int)(Math.random()*256);
int B= (int)(Math.random()*256);
Color color = new Color(R, G, B);
int x1 = (int) (Math.random()*175) + 25;
int y1 = (int) (Math.random()*100) + 300;
int widthandheight = (int) (Math.random()*200) + 0;
g.setColor(color);
g.drawOval(x1,y1,widthandheight,widthandheight);
}
// Draw 3-D Box
g.setColor(Color.red);
g.fillRect(550,400,100,100);
g.setColor(Color.green);
}
}
Я пытался использовать g.drawPolygon
, чтобы выяснить ромб, но безуспешно. Это дало мне ошибки.