Java Lab06 Как нарисовать куб / многоугольник, используя класс Graphics? - PullRequest
0 голосов
/ 02 ноября 2019

Я пытаюсь нарисовать 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, чтобы выяснить ромб, но безуспешно. Это дало мне ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...