Задать вопрос
@Afafks123132132165

Формулы 3д обектов?

Решил я отрендерить на canvas 3д обект.Есть какие нибудь формулы простого 3д обекта.И в какую сторону копать?Я слышал с помощью матриц можно сделать 3д это правда?И какой это раздел математики?
  • Вопрос задан
  • 306 просмотров
Подписаться 1 Простой 8 комментариев
Решения вопроса 1
ProgrammerForever
@ProgrammerForever
Учитель, автоэлектрик, программист, музыкант
Матрицы и линейная алгебра с ними связанная, используются для трансформации точек. Например, есть матрица, которая поворачивает вектор на определенный угол. Вектор(радиус-вектор), в данном случае, заменяет собой точку. Матрица, на которую надо умножить вектор (и получить другой вектор) - преобразование. Есть много всяких преобразований - проекции, вращения, масштабирование, перемещение и т.п.
Можно всё это сделать примитивно с помощью формул школьной геометрии, но суть матриц - в том что такие операции могут быть вычислены на видеокарте, что гораздо быстрее.
1) Углубиться в линейную алгебру - понятие векторов, матриц, преобразований матриц, умножение и т.п.
2) Углубиться в геометрию, хватит школьного уровня - векторы и операции с ними.

Если нужно "только нарисовать", то можно обойтись школьной математикой:
Xпроекции = X*cos(xx) + Y*cos(xy) + Z*cos(xz)
Yпроекции = X*cos(yx) + Y*cos(yy) + Z*cos(yz)

,где
xx - угол между новой осью X и старой X (0)
xy - угол между новой осью X и старой Y (90)
xz - угол между новой осью X и старой Z (240)
yx - угол между новой осью Y и старой X (-90)
yy - угол между новой осью Y и старой Y (0)
yz - угол между новой осью Y и старой Z (150)
Углы в скобках - как пример, когда ось Z находится в 3 четверти под 45 градусов.
Тогда:
Xпроекции = X + Z*cos(xz)
Yпроекции = Y + Z*cos(yz)

Берите объект как массив точек (для начала куб например - 8 точек) и присваивайте сначала координаты XYZ, а потом пересчитывайте их по этой формуле и отображайте на экране. И всё будет работать.
PS: в школе ещё, как только появились векторы, дошел до этих формул сам; пока выводил - исписал 12листовую тетрадку.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@AlexSku
не буду отвечать из-за модератора
Обычно 3D-объект это сеть треугольников (mesh). Напр., куб это 6 граней, каждая грань - 2 треугольника. Ровного (плавного) цилиндра или сферы не получится.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы