Я сделал куб в DirectX, но теперь я хочу, чтобы куб перемещался. Я хочу, чтобы этот куб перемещался по шаблону Лиссажу. Но по какой-то причине независимо от того, какие переменные я вхожу в свой куб, просто создаются круги вместо фигуры Лиссажу.Lissajous figure in Direct3D
Я не знаком с этой функцией, и я искал ответы, но я не могу исправить свою проблему. Так может быть, я допустил ошибку в функции, или, может быть, я делаю все совершенно неправильно.
Это код, который я использую для вычисления позиции, где m_Angle изменяет каждый кадр, чтобы куб продолжал двигаться.
float scale = 3.f;
float valueA = 1.0f;
float valueB = 2.0f;
float valueX = scale * valueA * sin(m_Angle + ((valueB - 1)/valueB)*(XM_PIDIV2));
float valueZ = scale * valueB * sin(m_Angle);
m_pColoredCube_1->SetPos(XMFLOAT3(valueX, 0.0f, valueZ));
Большое спасибо за объяснение, еще один вопрос ты gh, если вы измените разность фаз, что именно на графике изменится? Или это диапазон оси х? – user3678781
Фаза приводит к виду вращения фигуры. То есть если у вас коэффициент частоты 1 и разность фаз Pi/2, вы получаете круг. Если вы увеличиваете разность фаз, кружок преобразуется в диагональную линию (как если бы вы смотрели на круг со стороны, где он плоский). Просто [попробуйте] (http://www.wolframalpha.com/input/?i=ParametricPlot%5B%7BSin%5B2*Pi+*+3t+%2B+Pi%2F2%5D%2CSin%5B2+*+Pi+* + T% 5D% 7D% 2C% 7Bt% 2C0% 2C1% 7D% 5D). –
Это точно объясняет, почему в некоторых попытках сделать фигуру она просто пошла слева направо – user3678781