Тригонометрия и разработка игр [закрыто]

Я понимаю, что sin и cos (и некоторые другие тригонометрические функции) означает, но я действительно не понимаю, какие проблемы они решают. Можете ли вы показать мне примеры реального мира, когда вы используете некоторые из этих функций в разработке игр (в частности, 3D-разработке игр)?

спасибо.

8 ответов


в разработке игр, есть много ситуаций, где нужно использовать тригонометрические функции. При программировании игры вам часто нужно будет делать такие вещи, как найти расстояние между двумя точками или заставить объект двигаться. Вот несколько примеров:

  • вращение космического корабля или другого транспортного средства

  • правильное управление траекторией снарядов, выпущенных из вращающегося оружия

  • вычисление новой траектории после столкновения между двумя объектами, такими как бильярдные шары или головы

  • определить, если столкновение между двумя объектами происходит

  • поиск угла траектории (учитывая скорость объекта в направлении x и направлении y)

вот хорошая ссылка на различные области математики, необходимые в различных типах разработки видеоигр.

проверьте эти ссылки для получения дополнительной чтение:


самое очевидное использование тригонометрии - заставить объект двигаться в любом заданном направлении, без тригонометрии это невозможно.

//Example code, will move the object speed units in the given direction (degrees)
d2r = pi / 180; //Conversion from degrees to radians
this.x += speed * cos (direction * d2r);
this.y += speed *-sin (direction * d2r);

Он также используется для других вещей, таких как:

  • выполнение преобразований на 2d спрайтах для создания вращения.
  • очень широко используется при проектировании 3d-вида.
  • из-за формы синусоидальной волны его можно использовать для создания плавных переходов между 2 значениями.
  • создание синусоидальные волны с целью синтеза звука.
  • рисование круглых объектов, таких как круги и сферы.
  • определение местоположения точки,которая находится на плече оси.

3D-модели определяются вершинами (числовыми списками пар координат или тройками в 3D-пространстве) и линиями, которые их соединяют. Эти линии создают поверхности, которые могут быть визуализированы, освещены, текстурированы и т. д.

чтобы, скажем, повернуть объект, вы должны иметь возможность манипулировать этими вершинами. Если вы хотите повернуть объект на несколько градусов или радианов, вам придется использовать тригонометрические функции, чтобы выяснить, где он заканчивается.

Basic trig является фундаментальным для любого 3D манипуляции, необходимые для игры, моделирование и т. д. Это стоит вашего времени, чтобы изучить и ознакомиться с реальными смысл, если этих функций, их ограничения, и как их применять и усиливать полезность геометрии, обработки сигналов и т. д.

Это отличный вопрос; большинство просто кивают и ведут себя так, как будто это очевидно. Если только тебя не зовут Блейз или Рене, то, скорее всего, нет.


игры в 2D или 3D пространстве требуют геометрии для графики. Физические движки для моделирования движения точно требуют геометрии. Тригонометрия фундаментальна для геометрии.

возьмите что-то простое, как подпрыгивая. Физика попадания снаряда и стены и отскока назад быстро убедит вас в полезности тригонометрических функций.


тригонометрия имеет решающее значение для получения почти всех кривых (например, из эллипсов или кругов) и, следовательно, имеет большое использование в разработке игр. Дополнительно, волна синуса полезна для шума perlin и серий других специальных эффектов.


один пример триггерных функций используется в матрицах вращения

эта матрица используется для вращения точки в плоскости x, y вокруг начала координат.

|x'| = | cos a    -sin a | | x |
|y'|   | sin a     cos a | | y |
  • X и y исходной точки
  • x', y ' переведенные точки
  • угол поворота против часовой стрелки

написать программу, которая рисует и обновляет аналоговые часы.

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

Если это не дает вам ответа, попробуйте нарисовать его без греха и cos.


Ну, приложение, которое мгновенно приходит мне на ум, для специальных эффектов в игре... скажем, у вас есть оружие или заклинание, или способность, или какой-то эффект, который создает луч света... вы можете играть с математикой, чтобы "сформировать этот луч"...

таким же образом, скажем, у вас есть портал, который вы хотите играть в некоторые аккуратные анимации при активации или входе, Вы можете играть с векторами и матрицами вращения, и вы можете делать много удивительных вещей со смесью математики и вашего воображение...