Java中的椭圆内循环
我需要用Java检查椭圆形内的每个像素。 对于绘图,我目前正在使用:Java中的椭圆内循环,java,Java,我需要用Java检查椭圆形内的每个像素。 对于绘图,我目前正在使用: drawOval(x,y,r*2,R*2). 然而,由于我需要得到椭圆内的每个像素,我想创建一个循环,在其中迭代(假设我有x、y、r和r)。是否有用于此目的的内置功能 谢谢 Joel椭圆is的简单正则隐式方程(中心为0;0) 所以你可以迭代抛出所有可能的坐标,并用这个方程检查它。椭圆is的简单正则隐式方程(中心为0;0) 所以你可以迭代抛出所有可能的坐标,然后用这个方程检查它。我认为没有任何内置的功能 让我们一步一步地看
drawOval(x,y,r*2,R*2).
然而,由于我需要得到椭圆内的每个像素,我想创建一个循环,在其中迭代(假设我有x、y、r和r)。是否有用于此目的的内置功能
谢谢
Joel椭圆is的简单正则隐式方程(中心为0;0)
所以你可以迭代抛出所有可能的坐标,并用这个方程检查它。椭圆is的简单正则隐式方程(中心为0;0)
所以你可以迭代抛出所有可能的坐标,然后用这个方程检查它。我认为没有任何内置的功能 让我们一步一步地看一遍 假设椭圆的中心位于
(0,0)
,一个半径为a
,另一个半径为b
,则正则方程为
x^2/a^2+y^2/b^2=1
将两边乘以a^2
和b^2
,得到
x^2*b^2+y^2*a^2=a^2*b^2
现在,您必须执行双for循环<代码>a和b
必须为正。伪代码:
for x = -a; x <= a; ++x:
for y = -b; y <= b; ++y:
if(x^2*b^2+y^2*a^2 <= a^2*b^2)
// you're in your ellipse, do as you please
表示x=-a;x我认为这没有任何内置功能
让我们一步一步地看一遍
假设椭圆的中心位于(0,0)
,一个半径为a
,另一个半径为b
,则正则方程为
x^2/a^2+y^2/b^2=1
将两边乘以a^2
和b^2
,得到
x^2*b^2+y^2*a^2=a^2*b^2
现在,您必须执行双for循环<代码>a
和b
必须为正。伪代码:
for x = -a; x <= a; ++x:
for y = -b; y <= b; ++y:
if(x^2*b^2+y^2*a^2 <= a^2*b^2)
// you're in your ellipse, do as you please
表示x=-a;Java实现了该接口,因此您可以根据需要使用后者的contains()
方法之一。还可以将渲染为并遍历其可写光栅
Java实现该接口,因此可以根据需要使用后者的contains()
方法之一。还可以将渲染为并遍历其可写光栅