三角绘制方法

时间:2012-08-12 04:09:23

标签: java swing awt graphics2d

我在使用Java中的draw(Graphics g)方法绘制三角形时遇到问题。 我可以像这样绘制一个矩形:

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代表“形状的左上角”。我如何以相同的方式绘制三角形?

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

7 个答案:

答案 0 :(得分:28)

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

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

也有GeneralPath课程。它可以与Graphics2D一起使用,它可以绘制Shapes。看看:

答案 1 :(得分:3)

您应该尝试使用Shape API。

看一下关于绘制三角形的JPanel repaint from another class,查看getPath方法以获取一些想法

您还应该阅读GeneralPath& Drawing Arbitrary Shapes

此方法很容易将AffineTransformation应用于

答案 2 :(得分:1)

标准Java库未提供绘图三角形。 我在这里看到了示例代码:

http://www.dreamincode.net/forums/topic/52352-draw-line-triangle/

答案 3 :(得分:1)

使用线算法将点A与点C连接,并在外环中,让点A以相同的线算法和漫游坐标向B点漂移,重复绘制该线。您也可以包含一个z delta,迭代也会增加z delta。对于线算法,只需为每个坐标的delta变化计算两个或三个斜率,并在按比例更改另外两个斜率后将一个斜率设置为1,使它们低于1.这对于绘制连接的网格粒子之间的闭合几何区域非常重要。看一下Qt Elastic Nodes示例,现在想象一下在骨架上拉伸之后在节点之间绘制三角形。 As long as it will remain online

答案 4 :(得分:0)

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

即g.drawLines(积分坐标)

答案 5 :(得分:0)

没有直接的方法来绘制三角形。 您可以使用drawPolygon()方法。 它采用以下形式的三个参数: drawPolygon(int x[],int y[], int number_of_points); 绘制三角形: (指定数组y中的x坐标和数组y中的y坐标以及等于两个数组的元素的点数。像三角形一样,你将有3个坐标和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);

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

答案 6 :(得分:-1)

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

有一个名为triangle()的方法:

g.triangle(X1,Y1,X2,Y2,X3,Y3)