Как изменить координату XYZ в другую 2D систему

У меня есть 3D-точка, лежащая на вертикальной плоскости. Эта плоскость не параллельна оси X или Y, но составляет угол (скажем, θ) относительно оси X. А также имеет некоторый (+ или -) перехват к оси X.

Теперь я хочу обновить свою ось X параллельно азимутальному направлению моей плоскости. И тогда я хочу лечь вертикальной плоскости в плоскость XY. Итак, я думаю, что я мог бы использовать мои исходные координаты Z в качестве новых координат Y. Поскольку плоскость лежит на плоскости XY, координаты Z больше не должны быть. Итак, я хочу знать, как получить мои новые координаты X из исходного XYZ и θ.

На самом деле, я хочу реализовать эту модификацию в C ++. Но я действительно плохо разбираюсь в математике и пытаюсь понять, какой должна быть формула.

После этого я хочу выполнить некоторый процесс с новыми координатами точки XY. И в конце я хочу вернуть все свои координаты в исходную систему. Вот наконец я хочу вернуться к своим оригинальным осям XYZ. Поэтому я также ищу вашего помощника, чтобы получить это дело тоже.

Ваш помощник высоко ценится.

Примечание: так что я сделал это;
Я нашел азимутальный угол плоскости и затем сдвинул данные точки относительно наименьшего X а также Y то есть XY координаты нижнего левого угла моего набора точек. затем я получил новый X, Y как (X ‘, Y’):

X' = X * cos (θ) + Y * sin(θ)
Y' = Z

Не уверен, что мой путь правильный или нет .. Мне нравится изучать это.

-1

Решение

Я не могу понять, что вы сказали о «нижнем левом углу моего набора точек», но если я правильно понимаю «азимутальный угол плоскости», то первое преобразование будет таким:

X' =  X * cos(θ) + Y * sin(θ)
Y' = -X * sin(θ) + Y * cos(θ)
Z' =  Z

Вы должны поиграть с этим, убедитесь, что вы понимаете это, убедитесь, что это то, что вы хотите, прежде чем идти дальше.

После этого преобразования все точки на плоскости должны иметь одинаковое значение Y ‘.

Второе преобразование («лежа») будет таким:

X" = X'
Y" = Y' + Z'
Z" = 0

Вы должны помнить, каково было значение Y ‘, чтобы позже изменить это преобразование.

После того, как вы сделали все, что хотите в этих координатах, вы можете повернуть процесс вспять, чтобы вернуться к исходной системе координат:

X' = X"Y' = Y'
Z' = Y" - Y'

X = X' * cos(θ) - Y' * sin(θ)
Y = X' * sin(θ) + Y' * cos(θ)
Z = Z'
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector