Чтобы найти точки поворота, вы на самом деле хотите, чтобы угол двух векторов был маленький , потому что маленький тэта связан с наибольшим изменением направления.
Просто изменитеidx = np.where(theta > min_angle)[0]+1
до idx = np.where(theta < np.pi)[0] + 1
.
Вот что я получил: