计算移动圆中的每个笛卡尔点

时间:2012-04-04 15:46:01

标签: java algorithm multidimensional-array geometry

我有一个数组:int [] [] lawn = new int [980] [1280]; 它将刀片高度的值存储在虚拟的“草坪”中。

在我的模拟中,我有一个机器人绕着草坪切割刀片。

我的机器人具有直径(rDiameter)的圆形。坐标系用Double完成,我的草坪用Integer。

我必须开发一种算法,当机器人四处移动时,它将机器人触摸的所有细胞都置为0。

我有运动的起点和终点,它们存储在Line2D.Double表格中,我想设置0机器人(图像)触摸的所有单元格。 有什么想法吗?

(这是我之前关于同一论点的问题every cartesian point in a circle

1 个答案:

答案 0 :(得分:0)

分三个部分解决问题。第1部分是将半圆中的所有点设置为0。第2部分是将矩形中的所有点设置为0。第3部分是将路径分成两个半圆(在末端)和一个矩形(连接它们)。

请注意,半圆和矩形通常具有非轴对齐的线。有很多关于光栅化多边形和圆形的参考文献。你可以查看Jack Bresenham的算法。或者你可以翻开任何经典的计算机图形文字。