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