我有一个椭圆:
Ellipse2D e2D = new Ellipse2D.Float(startPoint.x, startPoint.y, x - startPoint.x, y - startPoint.y);
我需要的是获得形成周长的所有点的坐标。
ArrayList<Point> oneDraw = new ArrayList<>();
for (int i = startX; i < borderX; i++)
for (int j = startY; j < borderY; j++)
if (e2D.contains(new Point(i, j)))
oneDraw.add(new Point(i, j));
通过这样做,我把我圈子里面的所有坐标都放到了列表中,但我不需要这个。
感谢您的回答和花时间。
答案 0 :(得分:1)
答案 1 :(得分:0)
您的方法会将椭圆内部框中的所有像素添加到列表中,即您将获得椭圆的区域而不是其圆周。我会说找到正确的公式并解决离散的x / y对会更好。
或者更好地应用其中一种算法来绘制可在网上找到的椭圆,例如:这一个:http://www.mathopenref.com/coordcirclealgorithm.html
然后获取已绘制的像素(如果仍需要)。
编辑:如果您查看Ellipse2D
的源代码,您可以了解如何实现自己的算法,或者只使用{{1}使用统一变换,然后将路径元素“栅格化”到列表中。