Я задавал вопрос, похожий на этот, ранее, но с тех пор получил дальнейшее развитие, а также неправильно обозначил вопрос и хотел получить некоторую помощь по математике вокруг вопроса, если это возможно.
IУ меня есть трехмерная сфера с точками, равномерно распределенными по ее поверхности, координаты которых я знаю.Из этих координат я пытаюсь определить ориентацию некоторых шипов, выходящих с поверхности моей сферы вдоль вектора между центром сферы и точкой, в которой лежат координаты.
Идея состоит в том,эти углы Эйлера будут очень полезны при последующем выравнивании шипов, поэтому они все примерно одинаковой ориентации, если я собираюсь вычеркнуть все шипы из изображения.
Поскольку координаты на сфере равномернына расстоянии я могу просто взять средние координаты x, y и z, чтобы дать мне центр, и затем я могу нарисовать вектор от центра к каждой координате по очереди.
В этом случае нужно вычислить углы Эйлерасначала вокруг оси z, затем вокруг новой оси y и, наконец, снова вокруг новой оси z.
Моя центральная точка в настоящее время определяется как средняя координата всех моих координат.Это работает, поскольку координаты равномерно распределены вокруг сферы.
Затем я использую уравнение, которое утверждает
cos(theta) = dot product of the two vectors / magnitude of each vector multiplied together
на осях x и y.Один из моих векторов - это x и y вектора, который меня интересует, а другой - ось y (0,1).Это говорит мне о вращении вокруг оси z с осью y, равной 0. Я также вычисляю градиент линии на этой 2D-плоскости, чтобы вычислить, работаю ли я между 0 и +180 или 0 и -180.
Затем я поворачиваю ось x на только что рассчитанный угол, чтобы получить x ', используя простую двумерную матрицу вращения.
Затем я вычисляю угол таким же образом, как и выше, но на этот раз вокруг оси y, используя x'и z 'как мой второй вектор (где z' = z).
Наконец, я повторяю то же самое, как указано выше, чтобы вычислить новые z '' и x '' и сделать мой окончательный расчет.
Это дает мне три угла, но когда я отображаю в matlab с помощью команды quiver3, я не получаю правильную ориентацию с помощью этого метода.Я полагаю, что просто не понимаю, как правильно рассчитать углы Эйлера, и что-то путаю в пути.
Я надеялся, что кто-то более знающий, чем я, сможет взглянуть на мой запланированный метод вычисления угла Эйлера и найтилюбые недостатки.
Спасибо.