【发布时间】:2012-01-01 13:06:27
【问题描述】:
我正在尝试计算每个椭圆环内的给定数据点:
问题是我有一个功能可以检查: 所以对于每个椭圆,要确定一个点是否在其中,必须计算三个输入:
def get_focal_point(r1,r2,center_x):
# f = square root of r1-squared - r2-squared
focal_dist = sqrt((r1**2) - (r2**2))
f1_x = center_x - focal_dist
f2_x = center_x + focal_dist
return f1_x, f2_x
def get_distance(f1,f2,center_y,t_x,t_y):
d1 = sqrt(((f1-t_x)**2) + ((center_y - t_y)**2))
d2 = sqrt(((f2-t_x)**2) + ((center_y - t_y)**2))
return d1,d2
def in_ellipse(major_ax,d1,d2):
if (d1+d2) <= 2*major_ax:
return True
else:
return False
现在我正在检查它是否在椭圆中:
for i in range(len(data.latitude)):
t_x = data.latitude[i]
t_y = data.longitude[i]
d1,d2 = get_distance(f1,f2,center_y,t_x,t_y)
d1_array.append(d1)
d2_array.append(d2)
if in_ellipse(major_ax,d1,d2) == True:
core_count += 1
# if the point is not in core ellipse
# check the next ring up
else:
for i in range(loop):
.....
但是我必须计算外循环的每一对焦点.. 有没有更有效或更聪明的方法来做到这一点?
【问题讨论】:
-
这些椭圆具有相同的比例和中心,我说得对吗?如果是这样,您可以通过例如识别它们。
r1并创建一个函数,为每个点分配最小值r1,该点在省略号中。我是对的还是我误解了什么? -
椭圆是否同心,它们的大小是否按固定比例变化(它们看起来像)?如果是这样,您应该能够使用
dist_to_point / size_per_ellipse之类的内容来判断一个点的位置。 -
是的,它们是同心的!但是 dist_to_point/size_per_ellipse 不仅适用于圆圈吗?
-
@gddc:这与我相信我所说的相似,除了 到点的距离 并不能确定它何时落下 - 更重要的是一对“latitude”和“longitude”,因为这些椭圆不是圆形。
-
没错! @g.d.d.c 的解决方案在我看来只适用于圈子。
标签: python matplotlib ellipse