2015-05-04 3 views
1

У меня есть вектор v = <0,0,-1> и четыре других векторов, которые образуют «квадрат» в г-индексе -1 с длиной стороны 2*s, таким образом, что четыре вектора:Поворот вектор по отношению к другому повернут вектору

  • OA = <-s, s, -1>
  • OB = < s, s, -1>
  • OC = <-s,-s, -1>
  • OD = < s,-s, -1>

Теперь рассмотрим точку P в любом месте 3D-пространства.

Я хочу, чтобы повернуть v таким образом, чтобы она совпадала с вектором OP точки P, а затем применить ротацию в остальных четырех векторов, таких, что все четыре вектора слипаются в том же относительном положении от v.

Другими словами, вся «пирамида» векторов должна быть повернута так, чтобы v и OP выровнять.

Screenshot of scenario.

Точка P является произвольной и может быть любой точкой в ​​трехмерном пространстве. Любая помощь очень ценится!

+0

Я думаю, что этот вопрос следует задавать скорее на http://scicomp.stackexchange.com. Вы должны точно сказать, что если я правильно понимаю, вы хотите повернуть форму ABCD вокруг точки O. – coincoin

+0

Простите меня. Я видел математический вопрос здесь на SO. Я скопирую вопрос. Спасибо – Mekku

+0

@Mekku если у вас есть, пожалуйста, удалите его здесь. – user2079303

ответ

0

Если я правильно понял вопрос, вы хотите повернуть свою форму ABCD вокруг точки O с ограничением, которое (OP) и (OV) выровнены.

Я думаю об одном способе просто сделать это с помощью алгоритма без необходимости вычислять любые преобразования или вращения. Пусть V ', A', B ', C', D '- ваши новые точки.

1/ Поместите точку V», что:

--> ||VO|| --> 
V'O = ------ . OP 
     ||OP|| 

Это не должно быть трудно, так как вы знаете, O, P и V.

2/ векторы V'O или OP являются нормальными к плоскости A ', B', C ', D'. Поэтому вы можете поместить последние точки на эту плоскость так, чтобы они образовали квадрат и включали V 'в середину. Здесь необходимы некоторые математики (если интересно, я могу углубить объяснения).

Надеюсь, вам разрешено сделать это таким образом. Как прокомментировал, прежде чем лучше спросить, может быть, http://scicomp.stackexchange.com для приятных математических решений.

+0

Я не уверен, что понял это, но спасибо за то, что вы нашли время ответить. Я переместил вопрос на http://scicomp.stackexchange.com/. Должен ли я удалить вопрос здесь, как это было предложено? – Mekku

+0

Теперь я не уверен, если бы вы не поняли этого, это, конечно, было бы труднее понять. Что вы не поняли? (Я постараюсь обновить свой ответ) – coincoin

+0

Я думаю, что это вопрос не объяснения себя должным образом, поскольку предположение, что 'VO/\ V'O = 0' - это то, что меня действительно смутило. – Mekku

0

Я не знаю, будет ли это поздно ответить, поскольку вы задаете вопрос, но ваш вопрос довольно сильно используется в работе 3D-графики. Вы должны посмотреть на статью Википедии для матрицы вращения и хорошую статью Rotation About an Arbitrary Axis in 3D. Оба из них должны дать вам представление о том, как манипулировать вектором или матрицей в 3D.

+0

Для того, что я понял, вращение вокруг оси не решает его проблемы. – coincoin

+0

Я думаю, что вы правы @coincoin. OP хочет знать, как вращаться в трехмерной системе, а не о одной оси. В этой статье я расскажу, как это сделать. – v4n3ck

Смежные вопросы