|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.12.2012, 21:42 | #1 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
поворот 3D вектора
есть класс _3Dvector, для простоты все включено в public
Код:
присваивания, сравнения, сложения и т.д., так вот нужны три функции вращения вокруг осей x, y, z. тут уже пошла математика. в матрицах я не соображаю. дайте формулу. может как-то исходить из этого: x = cos(a); y = sin(a); но так много действий будет- 1нормализовать(такая ф-ция есть в классе). 2вычислить угол(используя обратную от выше-приведенной формулы). 3используя вышеприведенную формулу создать еденичный вектор с вычислиным углом + угол поворота. 4умножить получившийся вектор на длинну исходного Как-то так |
15.12.2012, 23:50 | #2 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
С матрицами на самом деле нетрудно: http://ru.wikipedia.org/wiki/Матрица_поворота
Перемножаете вектор и составленную матрицу: x' = x*a11 + y*a12 + z*a13 y' = x*a21 + y*a22 + z*a23 z' = x*a31 + y*a32 + z*a33
Изобретатель велосипедов
|
16.12.2012, 07:02 | #3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а еще можно было вспомнить что при вращении вокруг одной из осей, меняются лишь две координаты, итого имеем поворот на плоскости.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 16.12.2012 в 07:04. |
16.12.2012, 09:47 | #4 | ||
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
Цитата:
x = cos(a); y = sin(a); это будут задаватся углы вокруг оси Z. Но мне надо повернуть, готовый вектор на определенный угол. с матрицами может и не трудно Цитата:
Дано: вектор V, с координатами Vx = 5; Vy = 5; Vz = 10; Задача -повернуть данный вектор на 45 градусов вокруг оси Z Как это решить с помощью матрици |
||
16.12.2012, 10:57 | #5 | |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
Цитата:
Изобретатель велосипедов
|
|
16.12.2012, 10:58 | #6 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
Умножить вектор вот на такую матрицу:
|
16.12.2012, 11:09 | #7 | |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
Цитата:
Дано: вектор V, с координатами Vx = 5; Vy = 5; Vz = 10; Задача -повернуть данный вектор на 45 градусов вокруг оси Z как повернуть? последовательность операций! вот я беру калькулятор и начинаю считать, какие кнопки давить? |
|
16.12.2012, 11:11 | #8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
http://ru.wikipedia.org/wiki/Поворот...82.D0.B2.D0.B5
в вашем случае Z не меняется Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
16.12.2012, 11:24 | #9 | ||
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
Цитата:
Цитата:
http://matrix.reshish.ru/multiplication.php http://s40.radikal.ru/i089/1212/0b/1a37f3a59882.png Ответ: (7.07, 0, 10) PS: это вращение по часовой стрелке, если нужно против часовой, то вектор выставляете в конце Последний раз редактировалось Kostia; 16.12.2012 в 11:45. |
||
16.12.2012, 14:35 | #10 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
Наверно всем уже надоел
получилось вот так: Код:
Код:
ВСЕМ СПАСИБО |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
дано 3 вектора. определить максимальный чётный элемент каждого вектора и упорядочить по убыванию | 3Doleg | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 04.12.2012 01:45 |
Поворот в BitMap | Victor1963 | Помощь студентам | 2 | 16.11.2011 12:49 |
поворот изображения на форме (либо поворот файла с картинкой) | mystiql | Microsoft Office Access | 2 | 21.06.2011 22:03 |
СИ поворот | belii0987 | Помощь студентам | 2 | 23.06.2010 10:22 |
Поворот картинки | PAVEL315 | Общие вопросы Delphi | 3 | 24.12.2006 12:47 |