Подсчет точек внутри эллипса

Я пытаюсь подсчитать заданные точки данных внутри каждого кольца эллипса:

enter image description here

Проблема в том, что у меня есть функция для проверки того, что: {{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):
            .....

Но тогда я бы имел для вычисления каждой пары фокусных точек внешних циклов .. есть ли более эффективный и / или умный способ сделать это?

9
задан Serenity 26 July 2016 в 10:53
поделиться