Докуметация Cтарт Статьи Форум Лента Вход
Не официальное русскоязычное сообщество
Главная
    Документация jMonkeyEngine
        jMonkeyEngine Уроки и Документация
            Документация для уверенных пользователей
                Шпаргалка по математике

Шпаргалка по математике

Опубликованно: 17.04.2017, 20:25
Последняя редакция, Andry: 26.09.2017 13:35

Формулы

Обычно вам нужно объединять эти формулы. Посмотрите в таблице, что вы хотите, и что у вас есть. Если эти две строки не совпадают, вам необходимо выполнить шаги преобразования между ними. Например. Если у вас есть угол в градусах, но формула ожидает радианы: 1) преобразуйте градусы в радианы, 2) используйте формулу с радианами для получения результата.
 У меня есть…
Я хочу…
Формула
 Нормализованный вектор направления и длина
n1, d1
Вектор, который направлен в этом
направлении новый вектор направления v0
v0 = n1.mult(d1)
 Точка и вектор направления
p1, v1
Переместить точку
Новая точка p0
p0 = p1.add(v1)
 Направление, положение и расстояние
v1,p1,dist
Смещение положение на расстоянии
p2
v1.normalzeLocal()
scaledDir = v1.mult(dist)
p2 = p1.add(scaledDir)
 Два вектора направления и нормали
v1,v2
Объединить оба направления
Новый вектор направления v0
v0 = v1.add(v2)
 Две точки
p1, p2
Расстояние между двумя точками
Новый скаляр d0
d0 = p1.subtract(p2).length()
d0 = p1.distance(p2)
 Две точки
p1, p2
Направление от p2 до p1
Новый вектор направления v0
v0 = p1.substract(p2)
 Две точки, дробь
p1, p2, h=0.5f
Точка «на полпути» (h = 0,5f) между двумя точками
Новая интерполированная точка p0
p0 = FastMath.interpolateLinear(h,p1,p2)
 Вектор направления, вектор вверх
v, up
Вращение вокруг этой оси вверх в этом направлении
new Quaternion q
Quaternion q = new Quaternion();
q.lookAt(v,up)
 У меня есть…
Я хочу…
Формула
 Угол в градусах
a
Преобразование угла a из градусов в радианы
Новый float угол phi
phi = a / 180 * FastMath.PI;
OR
phi=a.mult(FastMath.DEG_TO_RAD);
 Угол в радианах
phi
Преобразование угла phi из радианов в градусы
Новый float угол a
a = phi * 180 / FastMath.PI
 Угол в радианах и ось x
phi, x
Вращать вокруг оси x
new quaternion q0
q0.fromAngleAxis( phi, Vector3f.UNIT_X )
 Угол в радианах и ось x
phi, y
Вращать вокруг оси y
new quaternion q0
q0.fromAngleAxis( phi, Vector3f.UNIT_Y )
 Угол в радианах и ось x
phi, z
Вращать вокруг оси z
new quaternion q0
q0.fromAngleAxis( phi, Vector3f.UNIT_Z )
 Несколько кватернионов
q1, q2, q3
Комбинировать повороты в указанном порядке
new quaternion q0
q0 = q1.mult(q2).mult(q3)
 Точка и кватернион
p1, q1
Поворот точки вокруг начала координат
new point p0
p0 = q1.mult(p1)
 Угол в радианах и радиус
phi,r
Размещать или перемещать объектов по кругу (с y = 0)
в координатах x и z
float x = FastMath.cos(phi)*r;
float z = FastMath.sin(phi)*r;

Локальные в сравнении с нелокальным методами?

  • Нелокальный метод создает новый объект в качестве возвращаемого значения, v остается неизменной.
    v2 = v.mult(); v2 = v.add(); v2 = v.subtract(); и.т.д
  • Локальный метод изменяет v напрямую!
    v.multLocal(); v.addLocal(); v.subtractLocal(); и.т.д

Переведено для jmonkeyengine.ru, оригинал.
Автор перевода: Andry

Добавить комментарий

Содержание

jMonkeyEngine.ru © 2017. Все права сохранены.