三角形绘制方法



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

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

在图形和图形2D中都没有drawTriangle方法。你需要自己做。您可以使用 drawLine 方法绘制三条线,也可以使用以下方法之一:

  • drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
  • 绘制多边形
  • (多边形 p)
  • drawPolyline(int[] xPoints, int[] yPoints, int nPoints)

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

还有 GeneralPath 类。它可以与Graphics2D一起使用,后者能够绘制形状。看一看:

  • http://docs.oracle.com/javase/tutorial/2d/geometry/arbitrary.html

您应该尝试使用 Shape 的 API。

看看另一个类的JPanel重绘,这是关于绘制三角形的,看看getPath方法的一些想法

您还应该阅读 GeneralPath & Draw Arbitrary Shapes。

此方法非常容易将仿射变换应用于

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

没有

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

即 g.drawLines(点的坐标)

没有直接的方法可以绘制三角形。你可以为此使用 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);

类似地,您可以使用任意数量的点绘制任何形状。

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

有一种方法叫做三角形():

g.triangle(x1,y1,x2,y2,x3,y3)

相关内容

  • 没有找到相关文章

最新更新