在Java中绘制凸/凹四边形

时间:2016-05-24 15:05:31

标签: java jframe polygon

我有四个随机排序的点,我似乎无法用这些点绘制凸/凹Polygon。这是我正在使用的代码:

int xPoly[] = new int[4];
int yPoly[] = new int[4];

for(int i = 0; i < quad.size(); i++){
  g2d.fill(quad.get(i));
  xPoly[i] = (int) (quad.get(i).getX());
  yPoly[i] = (int) (quad.get(i).getY());
}

Polygon poly = new Poylgon(xPoly, yPoly, xPoly.length);
g2d.draw(poly);

quad定义为ArrayList<Point> quad = new ArrayList();的位置。 Point是我写的一个简单的类,它是自我解释的。但是,我的解决方案一直在生成这样的多边形:

enter image description here

黑点是quad的一部分。我想要的结果是一个看起来很正常的多边形,而不是一个不规则的多边形。

quad ArrayList:

的示例
(0,0), (5,3) (9,10), (6, 7)

这些点没有指定的顺序,因此xPoly and yPoly也不必订购。

1 个答案:

答案 0 :(得分:0)

切换回答:

您必须自己在多边形中对点进行排序 - 多边形中的点描述将绘制的固定顺序。它不会插入您想要的形状类型。