我正在尝试用java创建一个三角形

时间:2012-05-29 21:22:44

标签: java geometry height width

//我正在尝试用java创建一个基本的赛车。我为身体制作了一个矩形,现在我正在尝试为前面制作一个三角形。我在线查看了创建三角形的代码,但没有一个看起来像我对下面的矩形的格式。我从“邪恶天才的视频游戏编程”中获得了大部分代码作为参考,现在我们鼓励创建自己的车辆,但矩形是唯一解释的形状。我确实将代码从矩形复制到三角形,期望一个与另一个重叠,只是为了让我知道它有效,但事实并非如此。有人能够向我解释如何制作三角形和可能的圆形吗?无论如何这样做而不必创建另一个类?

import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;

public class Vehicle extends JFrame

 {
    final int WIDTH = 900; int HEIGHT = 650;

    Rectangle p1Body = new Rectangle(WIDTH/9,HEIGHT/2, WIDTH/30,WIDTH/30);
    Triangle p1Front = new Triangle(WIDTH/9,HEIGHT/2, WIDTH/30,WIDTH/30);

    Rectangle p2Body = new Rectangle(((WIDTH/9)+((int)((WIDTH/9)*1.5)/2)),(HEIGHT/2)+ 
    (HEIGHT/10),WIDTH/30,WIDTH/30);


public Vehicle()
    {
        super("Radical Racing");
        setSize(WIDTH,HEIGHT);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);

}
public void paint(Graphics g)
{
    super.paint(g);

    g.setColor(Color.DARK_GRAY);
    g.fillRect(0,0,WIDTH,HEIGHT);

    g.setColor(Color.BLUE);

    g.fill3DRect(p1Body.x,p1Body.y,p1Body.width,p1Body.height,true);
    g.setColor(Color.BLUE);
    g.fill3D(p1Front.x,p1Front.y,p1Front.width,p1Front.height,true);


    g.setColor(Color.red);

    g.fill3DRect(p2Body.x,p2Body.y,p2Body.width,p2Body.height,true);

}


public static void main(String[]args)
    {
        new Vehicle();
    }

}

1 个答案:

答案 0 :(得分:1)

使用Path2D(.Double)可以使用Ellipse2D(.Double)完成三角形

顺便说一下,您可能想要考虑使用Area - http://docs.oracle.com/javase/7/docs/api/java/awt/geom/Area.html将所有这些形状合并为一个。面积对于操纵形状非常有用。测试它们是否包含点等。

查看Graphics2D.draw(或填充)(形状)

http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics2D.html#draw(java.awt.Shape