python, numpy, генерация точек на окружности

Есть некая окружность, на ее сегменте необходимо сгенерить пару десятков точек. Исходные данные такие:

r = 0.1                                              # радиус
c = np.array([-118.702219 / 1000, -35 / 1000])       # центр
f = np.array([-118.702219 / 1000, 65 / 1000])        # первая точка дуги
ff = np.array([-61.344575 / 1000, 46.915204 / 1000]) # конечная точка дуги

Пробовал так:

def circle_points(r, c, first, final, num=30):
    vec1 = f - c
    vec2 = ff - c
    cos = np.dot(vec1, vec2)/np.linalg.norm(vec1)/np.linalg.norm(vec2)
    phi = -1 * np.degrees(np.arccos(cos))
    phi_mesh = np.linspace(0, phi, num=num, endpoint=True)
    
    x = first[0] * np.cos(np.deg2rad(phi_mesh)) - first[1] * np.sin(np.deg2rad(phi_mesh))
    
    y = first[0] * np.sin(np.deg2rad(phi_mesh)) + first[1] * np.cos(np.deg2rad(phi_mesh))
    
    return np.hstack((x.reshape(-1, 1), y.reshape(-1, 1)))

и если по Х координате более менее похоже, то по Y вообще не сходится...

array([[-0.11870222,  0.065     ],
       [-0.11730681,  0.06748578],
       [-0.11585935,  0.06994161],
       [-0.11436048,  0.07236641],
       [-0.11281087,  0.07475911],
       [-0.11121121,  0.07711863],
       [-0.10956221,  0.07944394],
       [-0.1078646 ,  0.08173399],
       [-0.10611912,  0.08398779],
       [-0.10432657,  0.08620432],
       [-0.10248772,  0.0883826 ],
       [-0.1006034 ,  0.09052167],
       [-0.09867445,  0.09262057],
       [-0.09670171,  0.09467838],
       [-0.09468607,  0.09669418],
       [-0.09262842,  0.09866708],
       [-0.09052967,  0.1005962 ],
       [-0.08839075,  0.10248069],
       [-0.08621262,  0.10431971],
       [-0.08399623,  0.10611244],
       [-0.08174258,  0.10785809],
       [-0.07945265,  0.10955589],
       [-0.07712748,  0.11120508],
       [-0.07476808,  0.11280492],
       [-0.07237551,  0.11435472],
       [-0.06995083,  0.11585378],
       [-0.06749511,  0.11730144],
       [-0.06500944,  0.11869705],
       [-0.06249493,  0.12003999],
       [-0.0599527 ,  0.12132968]])

Ответы (0 шт):