![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
![]()
есть класс _3Dvector, для простоты все включено в public
Код:
присваивания, сравнения, сложения и т.д., так вот нужны три функции вращения вокруг осей x, y, z. тут уже пошла математика. в матрицах я не соображаю. ![]() может как-то исходить из этого: x = cos(a); y = sin(a); но так много действий будет- 1нормализовать(такая ф-ция есть в классе). 2вычислить угол(используя обратную от выше-приведенной формулы). 3используя вышеприведенную формулу создать еденичный вектор с вычислиным углом + угол поворота. 4умножить получившийся вектор на длинну исходного Как-то так |
![]() |
![]() |
![]() |
#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
Изобретатель велосипедов
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
а еще можно было вспомнить что при вращении вокруг одной из осей, меняются лишь две координаты, итого имеем поворот на плоскости.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 16.12.2012 в 07:04. |
![]() |
![]() |
![]() |
#4 | ||
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
![]() Цитата:
x = cos(a); y = sin(a); это будут задаватся углы вокруг оси Z. Но мне надо повернуть, готовый вектор на определенный угол. с матрицами может и не трудно Цитата:
![]() Дано: вектор V, с координатами Vx = 5; Vy = 5; Vz = 10; Задача -повернуть данный вектор на 45 градусов вокруг оси Z Как это решить с помощью матрици |
||
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
![]() Цитата:
Изобретатель велосипедов
|
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
Умножить вектор вот на такую матрицу:
![]() |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
![]() Цитата:
Дано: вектор V, с координатами Vx = 5; Vy = 5; Vz = 10; Задача -повернуть данный вектор на 45 градусов вокруг оси Z как повернуть? последовательность операций! вот я беру калькулятор и начинаю считать, какие кнопки давить? |
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
http://ru.wikipedia.org/wiki/Поворот...82.D0.B2.D0.B5
в вашем случае Z не меняется Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#9 | ||
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]() Цитата:
Цитата:
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. |
||
![]() |
![]() |
![]() |
#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 |