1

//我正在尝试用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();
    }

}
4

1 回答 1

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 )

于 2012-05-29T21:29:28.047 回答