gpt4 book ai didi

polygon - Java中坐标的顺序会影响多边形的绘制吗

转载 作者:行者123 更新时间:2023-12-02 11:07:50 24 4
gpt4 key购买 nike

我问是否有任何特定的顺序需要输入我的坐标集以使用 Java 中的 Graphics2D 类绘制多边形。

例如,对于 X 和 Y 坐标数组,我的坐标(X,Y)的值是否需要按降序/升序排列?

或者另一个例子是,如果我想绘制一个多边形,并且我有 4 组点,左上角、右上角、右下角和左下角,我只需按此顺序将它们输入到 Java 中的 drawPolygon 方法中即可获得具有对应角的绘制多边形这4点。

或者我可以以任意随机顺序排列我的坐标?

提前致谢。

最佳答案

要了解一般的多边形填充,您必须了解边缘方向缠绕顺序和选定的多边形填充规则

边的方向由顶点声明的顺序决定。例如...

Polygon poly= new Polygon();
poly.addPoint(10, 10);
poly.addPoint(100, 10);
poly.addPoint(100, 100);
poly.addPoint(10, 100);

通过连接相邻顶点(来自顶点的有序列表)以形成边来绘制多边形。列表中的最后一个顶点也加入第一个顶点(就好像列表是圆形的)。上面多边形中的第一条边是由前两个顶点 - Point(10,10) 和 Point(100,10) 构造的。

每当多边形自相交或重叠时,要了解如何绘制多边形,您需要了解缠绕顺序和所应用的多边形填充规则。当多边形重叠时,会创建多边形子区域 - 由边包围的离散区域。这些子区域的缠绕顺序以及所应用的多边形填充规则决定了这些子区域是否被填充。


(来源:angusj.com)

任何给定多边形子区域的绕数可以通过以下方式导出:

  • 将绕组计数设置为零
  • 从给定子区域内的点 (P1) 绘制一条假想的水平线到多边形外部的另一个点 (P2)
  • 从 P1 到 P2 穿过这条线时,对于穿过这条假想线的每个多边形边 - 如果它朝上,则增加缠绕计数,否则减少缠绕计数。

根据Java Graphics2D documentationfillPolygon仅使用奇偶填充规则,其中仅填充奇数编号的子区域。


(来源:angusj.com)

关于polygon - Java中坐标的顺序会影响多边形的绘制吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15368251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com