Мне нужно создать палку пого, которая прыгает по экрану в дугах. Я думал, что лучший способ сделать это - переместить его на волну греха. Если вершина волны равна 1, земля - 0, а основание волны - -1, то каждый раз, когда она достигает 0, я сбрасываю значения, чтобы снова начать синусоидальную волну. Таким образом, вместо того, чтобы следовать за типичной синусоидальной волной (0, 1, 0, -1, 0 и т. Д.), Она будет идти 0, 1, 0, 1, 0 и т. Д.
К сожалению, моя математика довольно ужасна, и я часами пытался разработать формулу. В данный момент я просто пытаюсь создать нормальную волну греха, где верхняя половина имитирует прыжок пого-палки. Ближайший у меня есть:
m_vel.x++;
float f = PI / 30 / 2;
m_vel.y = 200 * sin(f * m_vel.x);
m_vel.y = -m_vel.y;
Мне нужно, чтобы волны были достаточно узкими, а высшая точка - достаточно высокой. Приведенная выше формула начинается хорошо для первой итерации, но затем волны становятся шире, а верхние и нижние точки сближаются друг с другом. Кто-нибудь может помочь математике?