我在使用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代表“形状的左上角”。我如何以相同的方式绘制三角形?
有人能给我一个标准三角形的例子吗?
答案 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)