Я пытаюсь подсчитать заданные точки данных внутри каждого кольца эллипса:
Проблема в том, что у меня есть функция для проверки того, что: {{1 }} поэтому для каждого эллипса, чтобы убедиться, что точка находится в нем, необходимо вычислить три входа:
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):
.....
Но тогда я бы имел для вычисления каждой пары фокусных точек внешних циклов .. есть ли более эффективный и / или умный способ сделать это?