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

标签 java geometry height width

//我正在尝试用java创建一辆基本的赛车。我为 body 制作了一个矩形,现在我正在尝试为前面制作一个三角形。我在网上查找了有关创建三角形的代码,但没有一个看起来像我下面的矩形那样的格式。我从“邪恶天才的视频游戏编程”中获得了大部分代码作为引用,现在鼓励我们创建自己的车辆,但矩形是唯一解释的形状。我确实将代码从矩形复制到三角形,希望其中一个与另一个重叠,这样我就知道它有效,但事实并非如此。有人能向我解释如何制作三角形和圆形吗?还有没有办法做到这一点而不必创建另一个类?

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();
    }

}

最佳答案

三角形可以使用 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 )

关于java - 我正在尝试用java创建一个三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10806903/

相关文章:

java - 从Java中的另一个对象获取空值,但在自己的类中获取值

java - 我如何制作不同的按钮,不同的 ImageView 会受到影响

python - 在 python 中找到直线和圆的交点的最有效方法是什么?

javascript - JS - 100% 且无滚动的 iframe 高度(正文中的 Scroll-y)

css - DIV 设置为高度 :auto not displaying correctly

java - Apache tomcat 服务器本地主机 url

java - 如何只使用一种方法返回两个不同的值?

javascript - 在p5js中沿着弧线移动

algorithm - 如何计算两个轴承之间的最小旋转

iphone - UIWebview 调整高度以适应内容