2012-08-12 213 views
16

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

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

回答

27

没有既不图形也不Graphics2D的一个drawTriangle方法。你需要自己做。可以使用drawLine方法绘制三行或使用一种以下方法:

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

也有GeneralPath类。它可以用于Graphics2D,它可以绘制Shapes。请看:

+0

drawPolygon正是我一直在寻找的!谢谢 – 2012-08-12 04:42:59

+0

@JonSnow:不客气! – davidbuzatto 2012-08-12 04:44:26

0

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

即,例如,drawLines(点的坐标)

1

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

0

没有直接的方法绘制三角形。 您可以使用drawPolygon()方法。 需要以下形式的三个参数: drawPolygon(int x[],int y[], int number_of_points); 绘制三角形: (指定数组x中的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); 

同样,您可以根据需要使用尽可能多的点绘制任何形状。