Я пытаюсь получить сетку, чтобы пересечь цепь через сферу. Я взял изображение, которое обернуто вокруг сферы, и покрасил путь, по которому я хочу, чтобы сетка следовала. Затем я вычислил все (u, v) точки пути. Используя точки (u, v), я конвертирую в сферические координаты, чтобы получить сетку на сфере, и установите вращения вокруг осей X и Y rot.x
и rot.y
, так что сетка касается касательной сферы и обращена к северному полюсу сферы. Моя проблема заключается в том, чтобы сетка была направлена в направлении, в которое она движется. Третья переменная вращения, rot.z
, используется для установки заголовка сетки. В настоящее время я получаю точки (u, v) с 5-го по 14-й пункт, и беру среднее значение углов высоты сегмента линии текущей точки и каждого из 10 будущих очков. Это работает, но два недостатка в том, что заголовок колеблется очень часто, а также заголовок имеет тенденцию быть неточным при резком повороте. Что такое хороший метод расчета заголовка сетки?Правильная ориентация 3D-сетки на точку в направлении ее заголовка
1
A
ответ
1
Простым подходом является построение матрицы вращения. При этом вам не нужно думать о углах, потому что, если вы знаете направление и либо верхний, либо правый вектор, все записи могут быть рассчитаны. В вашем случае направление является касательной к сфере, а верхний вектор - нормалью в этой точке.
vec3 direction = tangent;
vec3 up = normal;
vec3 right = cross(direction,up);
mat3 m;
m[0] = right;
m[1] = up;
m[2] = direction;
Смежные вопросы
- 1. Деятельность не правильная ориентация
- 2. Правильная ориентация пространственной камеры
- 3. Правильная ориентация изображения в проекте AngularJS 1.5
- 4. Правильная ориентация экрана в WIndows Phone 8.1
- 5. Ориентация поворотного заголовка
- 6. Правильная структура заголовка C
- 7. Переместить объект по сетке в направлении заголовка
- 8. Ориентация на поле выбора внутри заголовка таблицы
- 9. Ориентация и правильная размерная строка стека
- 10. Как указать точку света в определенном направлении?
- 11. генерировать точку в случайном направлении от центра
- 12. Правильная ориентация круговой полосы выполнения с SVG
- 13. Правильная компоновка файла заголовка C++
- 14. jQuery CSS Ориентация данных-заголовка
- 15. Какова правильная компоновка таблицы-заголовка?
- 16. Переместить пулю в направлении ее вращения
- 17. Ориентация Android правильная в дизайнере, но неправильная в устройстве
- 18. Ориентация метки заголовка таблицы в центре
- 19. Ориентация iPhone на iPhone
- 20. Unity3D аватар, пожалуйста, мне точку в правильном направлении
- 21. линия вычисляется в направлении черепахи не соответствует форме заголовка
- 22. Как разбить десятичную точку на ее точку на целые числа, используя JavaScript?
- 23. Удалите точку с рисунка после ее построения
- 24. Как повернуть линию на ее среднюю точку по заданному углу?
- 25. Задержка анимации, сделайте ее в другом направлении после Xs
- 26. Изменить контрольную точку Sprite, не перемещая ее?
- 27. Определение значения структуры в ее объявлении в файле заголовка
- 28. Кнопка в строке заголовка, как ее достичь
- 29. Ориентация фотографий на устройствах Android
- 30. Как переместить одну точку в другую точку на C++?
В этом проблема: вычисление вектора направления в вашем методе или установка угла поворота в моем. Поскольку я имею дело со сферой, я бы посмотрел на касательную плоскость, а не на линию. Ячейка ориентирована так, что я использую '' rot.x'' и '' rot.y'', чтобы убедиться, что сетка находится на касательной плоскости (поэтому я мог вычислить вектор '' up''), но я ' m пытается получить соответствующее направление, основанное на точках, которые собирается сетка. –
В чем проблема? В касательной плоскости имеются бесконечные возможные векторы. Это не должно быть так сложно найти;). – dari
В принципе, у меня есть список из 5000 (u, v) точек, которые составляют путь, который проходит. Учитывая индекс '' i'' пути, я просматриваю точки '' i + 5'' '' i + 14'' и суммирует '' arctan2 (v2-v1, u2-u1) ''. Это работает, но это приводит к тому, что угол сетки много прыгает, и я пытаюсь найти способ сделать изменение угла более плавным. –