0 / 0 / 0
Регистрация: 13.11.2017
Сообщений: 6
1

Поворот точки в пространстве по нормали

03.08.2020, 12:21. Показов 686. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
я нашёл такую формулу:
Кликните здесь для просмотра всего текста
Код
новый x вершины = x*normalY + x*normalX + x*(-normalX) + x*normalY
новый y вершины = y*normalY + y*normalX + y*(-normalX) + y*normalY

и у меня получился такой код:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
void rotate_point(const vec3_t origin, const vec3_t normal, vec3_t& point)
{
    point -= origin;
    
    point.x = point.x * normal.y + point.x * normal.x + point.x * (-normal.x) + point.x * normal.y;
    point.y = point.y * normal.y + point.y * normal.x + point.y * (-normal.x) + point.y * normal.y;
    
    point += origin;
}

но так как я не учитываю ось Z то поворот не работает при некоторых значениях нормали
можете подсказать такую формулу для поворота точки в 3д пространстве?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2020, 12:21
Ответы с готовыми решениями:

Поворот точки вокруг другой точки в трехмерном пространстве
Есть точка A с координатами . Есть точка B -центр поворота . Я поворачиваю A на 90 градусов по...

Поворот точки в пространстве
Здравствуйте, у меня есть пространство OXYZ и мне нужно повернуть точку как я показал на рисунке....

Поворот фигуры вокруг точки в пространстве
Нужно крутить треугольник возле точки в пространстве, и всё бы хорошо да испольование формулы с ...

Способы поворота вектора нормали на 90 градусов в трехмерном пространстве
Доброго времени суток. Имеется вектор нормали (нормализованный вектор направления) направления...

4
Эксперт по математике/физике
4217 / 3412 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
03.08.2020, 13:53 2
Цитата Сообщение от zidjey Посмотреть сообщение
нашёл такую формулу
Вот она и нужна, только на языке математики. А коды - здесь дело десятое. Как дополнение к исходной математике.
0
0 / 0 / 0
Регистрация: 13.11.2017
Сообщений: 6
03.08.2020, 14:01  [ТС] 3
если бы я работал в 2д пространстве то она бы идеально подходила, но так как я работаю в 3д то как я описал в теме она работает не при всех значениях нормали
0
Том Ардер
03.08.2020, 15:53
  #4
 Комментарий модератора 
Правила форума
4.7. Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.

Рекомендации по созданию темы
Редактор формул
0
Эксперт по математике/физике
6358 / 4065 / 1512
Регистрация: 09.10.2009
Сообщений: 7,550
Записей в блоге: 4
03.08.2020, 18:19 5
Цитата Сообщение от zidjey Посмотреть сообщение
Поворот точки в пространстве по нормали
Хм.. Что бы это означало?
Посмотрим на "формулы":
Цитата Сообщение от zidjey Посмотреть сообщение
point.x = point.x * normal.y + point.x * normal.x + point.x * (-normal.x) + point.x * normal.y;
1-е и 4-е слагаемые одинаковые, они складываются, 2-е и 3-е противоположные по знаку, они взаимно уничтожаются. В результате выходит point.x = 2*point.x * normal.y; Со следующей строчкой то же самое:
Цитата Сообщение от zidjey Посмотреть сообщение
point.y = point.y * normal.y + point.y * normal.x + point.y * (-normal.x) + point.y * normal.y;
Это то же самое, что и point.y = 2*point.y * normal.y; И что бы это всё означало геометрически? В матричной форме
https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix}x'\\ y'\end{pmatrix}=\begin{pmatrix}2y_n & 0\\ 0 & 2y_n\end{pmatrix}\begin{pmatrix}x\\ y\end{pmatrix}=2y_n \begin{pmatrix}1 & 0\\ 0 & 1\end{pmatrix}\begin{pmatrix}x\\ y\end{pmatrix}=2y_n \begin{pmatrix}x\\ y\end{pmatrix}
Это просто гомотетия в 2yn раза точки (x;y) с центром гомотетии в начале координат, а не поворот.

Завязывайте писать словесными огрызками, как в чатах пишут, в надежде, что "и так догадаются". Поворот делается вокруг такой-то прямой (на самом деле даже вектора, так как нужно знать, в каком направлении вы смотрите вдоль этой прямой) на такой-то угол в таком-то направлении (против или по часовой стрелке). Только так.
1
03.08.2020, 18:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.08.2020, 18:19
Помогаю со студенческими работами здесь

Найти координаты точки в пространстве, имея уравнение прямой в пространстве
Имеются две точки, через которые проходит прямая в пространстве: A(3; 1; 4216) B(12; 10; 12308) ...

Поворот вокруг произвольной оси в пространстве
Готовлюсь к экзамену, говорят препод ловит на всяких двусмысленностях и неправильных формулировках,...

Поворот треугольников в пространстве на некоторый угол
Здравствуйте, помогите, пожалуйста, решить задачку. Задачка скорее по Линейной алгебре или...

Поворот вектора на заданный угол в двумерном пространстве
Поворот заданного вектора на заданный угол в двумерном пространстве. Входными данными являются три...

Найти точки пересечения нормали и кривой
Здравствуйте! Необходимо найти точки на "измеренном" сечении, соответствующие точкам на...

Найдите расстояние от точки до точки в пространстве
Найдите расстояние от точки x(t)=t до точки x(t)={t}^{2} в пространстве C .


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru