Создание гладких орбит в пигме - PullRequest
1 голос
/ 20 февраля 2011

Как я могу сделать гладкую круговую орбиту с постоянной скоростью, используя Pygame?Как бы я вычислил x, y по кругу?

Ответы [ 2 ]

4 голосов
/ 20 февраля 2011

Вращение вокруг 2-й точки center с заданным радиусом и скоростью. Параметр t - это время в секундах.

def circular_orbit(center, radius, speed, t):
    theta = math.fmod(t * speed, math.PI * 2)
    c = math.cos(theta)
    s = math.sin(theta)
    return center[0] + radius * c, center[1] + radius * s
1 голос
/ 20 февраля 2011

Попробуйте использовать полярные координаты. Это естественно :) 1001 *

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...