Как использовать математику, чтобы вращаться вокруг центра изображения ggez вместо верхнего левого угла? - PullRequest
0 голосов
/ 09 января 2019

Я создаю игру, используя ggez , используя камеру из ggez_goodies .

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

Я бы предположил, что вы просто измените позицию, чтобы исправить это, сейчас у меня есть просто позиция

self.image
    .draw_camera(
        camera,
        ctx,
        graphics::Point2::new(self.position.0, self.position.1),
        self.rotation,
    )
    .unwrap();

Полагаю, исправление выглядело бы примерно так:

self.image
    .draw_camera(
        camera,
        ctx,
        graphics::Point2::new(
            self.position.0 + self.rotation_offset.0,
            self.position.1 + self.rotation_offset.1,
        ),
        self.rotation,
    )
    .unwrap();

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

Какое смещение / изменение я могу внести в положение, в котором изображение должно вращаться вокруг центра, а не вокруг верхнего левого угла?

...