20

我无法使用draw(Graphics g)Java 中的方法绘制三角形。我可以像这样画一个矩形:

public void draw(Graphics g) {
    g.setColor(colorFill);
    g.fillRect(p.x, p.y, width, height);
    g.setColor(colorBorder);
    g.drawRect(p.x, p.y, width, height);
    drawHandles(g);

其中 p 代表“形状的左上角”。我将如何以相同的方式绘制三角形?

有人能给我一个标准三角形的例子吗?

4

6 回答 6

30

Graphics 和 Graphics2D 中都没有 drawTriangle 方法。你需要自己做。您可以使用该方法绘制三条线drawLine或使用以下方法之一:

这些方法适用于多边形。您可以将前缀更改为drawfill填充由点集定义的多边形时。我插入了文档链接。看看以了解如何使用它们。

还有GeneralPath类。它可以与能够绘制Shapes的 Graphics2D 一起使用。看一看:

于 2012-08-12T04:30:54.293 回答
3

您应该尝试使用Shapes API。

看看JPanel repaint from another class这都是关于绘制三角形的,看看getPath方法中的一些想法

您还应该阅读GeneralPath & Drawing Arbitrary Shapes

这种方法很容易将AffineTransformation应用于

于 2012-08-12T04:31:01.273 回答
1

使用直线算法将 A 点与 C 点连接起来,在外循环中,让 A 点以相同的直线算法和漫游坐标向 B 点游荡,重复绘制该直线。您可能还可以包含 az delta ,它也会迭代地递增。对于线算法,只需计算每个坐标的增量变化的两个或三个斜率,并在其他两个按比例更改后将一个斜率设置为1,使其低于1。这对于绘制连接的网格粒子之间的封闭几何区域非常重要。看一下 Qt Elastic Nodes 示例,现在想象在将其拉伸到骨架上之后在节点之间绘制三角形。 只要它保持在线

于 2017-12-04T03:18:32.770 回答
0

没有直接绘制三角形的命令。对于三角形的绘制,我们必须在这里使用线的概念。

即,g.drawLines(点的坐标)

于 2017-10-24T18:02:03.993 回答
0

没有直接的方法来绘制三角形。您可以为此使用 drawPolygon() 方法。它采用以下形式的三个参数: drawPolygon(int x[],int y[], int number_of_points); 绘制三角形:(指定数组 x 中的 x 坐标和数组 y 中的 y 坐标以及将等于两个数组元素的点数。就像在三角形中一样,您将拥有3 x 坐标和 3 y 坐标,这意味着您总共有 3 个点。)假设您要使用以下点绘制三角形:(100,50),(70,100),(130,100) 在内部执行以下操作public void paint(Graphics g)

int x[]={100,70,130};
int y[]={50,100,100};
g.drawPolygon(x,y,3);

同样,您可以使用任意数量的点绘制任何形状。

于 2018-02-09T20:21:27.267 回答
-1

您可以使用处理库: https ://processing.org/reference/PGraphics.html

有一个方法叫做triangle():

g.triangle(x1,y1,x2,y2,x3,y3)
于 2016-02-28T11:00:48.880 回答