Вычислить конечную точку вектора - PullRequest
0 голосов
/ 25 января 2019

Я хочу найти координаты конечных точек (X, Y, Z) желтого вектора.

В двух измерениях это очень просто, но я хочу повернуть на 45 градусов вокруг оси Z в 3D

в 2D:

lenght: 10
start point: 0, 0
end point X=lenght*COS(45deg)=7,07 
end point Z=lenght*SIN(45deg)=7,07

Как рассчитать конечные точки X, Y, Z в 3D? enter image description here

1 Ответ

0 голосов
/ 26 января 2019
  1. шаг, конечная позиция желтого вектора в 10,0,0 ->
  2. шаг, приращение градусов от оси X, +45 градусов ->
  3. шаг повернуть конечную точку вектора вокруг оси Z на +45 градусов, что такое координаты новой конечной точки вектора?

Вы используете некоторую нетрадиционную терминологию.В частности, неясно, что означает « приращение градусов от оси X, +45 градусов ».В любом случае это возможно решить с матрицами вращения .Я предполагаю, что шаг № 2 означает «повернуть вдоль оси Y на 45 градусов».

Итак, это дает нам:

Шаг 1 v1 = (10,0,0)

Шаг 2 повернуть вдоль оси Y на 45 градусов.Таким образом, мы должны умножить наш вектор на матрицу:

cos(45)   0   sin(45)
0         1   0
-sin(45)  0   cos(45)

, что дает нам v2 = (10*sqrt(2)/2, 0, 10*sqrt(2)/2) = (5*sqrt(2), 0, 5*sqrt(2))

Шаг 3 повернуть конечную точку вектора вокруг оси Z на +45 градусов,Поэтому мы должны умножить наш вектор v2 на матрицу:

cos(45)  -sin(45)  0
sin(45)  cos(45)   0
0         0        1 

, что дает нам v3 = (5, 5, 5*sqrt(2)).

PS Обратите внимание, что, выполнив эти 2 поворота, вы не получите "средняя линия "3-й оси, как можно подумать, потому что этот вектор, очевидно, имеет все 3 компонента равными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...