Другими словами, независимо от направления, в котором она была повернута, она должна быть преобразована в стандартную и фиксированную форму.
Буду очень признателен за вашу помощь.
Код: Выделить всё
points = np.array([[0.,0.,0.]
[-0.075135,0.538134,-0.323848]
[-0.,0.697979,-0.]
[-0.105474,0.11303,-0.087109]
[-0.169698,0.267493,-0.465798]])
# points = rotate_points_around_point(points, 180, "y", points[0])
points = np.array([[0.,0.,0.]
[ 0.075135,0.538134,0.323848]
[-0.,0.697979,0.]
[ 0.105474,0.11303,0.087109]
[ 0.169698,0.267493,0.465798]])}
# points = rotate_points_around_point(points, 20, "y", points[0])
points = np.array([[0.,0.,0.]
[ 0.181367,0.538134,0.27862]
[-0.,0.697979,0.]
[ 0.128906,0.11303,0.045782]
[ 0.318777,0.267493,0.379667]])
[img]https://i. sstatic.net/WZ0abiwX.jpg[/img]

Это всего лишь пример с 5 баллами. Может быть 100 баллов. Важно то, что при любом вращении вокруг оси Y он должен принимать фиксированную форму.
Что мне пришло в голову, так это проверить к какой плоскости точки ближе всего. Например, если они расположены ближе к плоскости XZ, поверните точки так, чтобы они находились на минимальном расстоянии от этой плоскости. Однако эта идея может быть неверной.
Например, независимо от вращения входных данных, выходные данные должны быть преобразованы следующим образом:
Код: Выделить всё
[[ 0. 0. 0. ]
[ 0.075135 0.538134 0.323848]
[-0. 0.697979 0. ]
[ 0.105474 0.11303 0.087109]
[ 0.169698 0.267493 0.465798]]
Подробнее здесь: https://stackoverflow.com/questions/790 ... r-rotation