2016-10-15 2 views
0

У меня есть прямоугольник r с размером 1536x720, который я вращаться вокруг своей центральной точки p(768, 360), что достаточно легко с помощью встроенной в Sf :: Sprite :: Функции поворотаРазделение вращающегося прямоугольника на меньшие прямоугольники, как повернуть их, чтобы поддерживать оригинальный большой прямоугольник?

Теперь по несвязанным причинам я должен разделить вверх по прямоугольнику на 6 маленьких прямоугольников (каждый размером 512x360).

Эти меньшие прямоугольники являются только большим прямоугольником r нарезанный; они расположены таким образом, что «сшиты вместе» они образуют исходный прямоугольник (так это выглядит, как будто это еще оригинальный большой прямоугольник)

Иллюстрация:image

Поскольку прямоугольник r постоянно вращается вокруг своей собственный центр, разбивая его на более мелкие прямоугольники, ввел проблему:

Как повернуть сшитый прямоугольник (то есть меньшие прямоугольники) вокруг исходного центра p так, чтобы поддерживался оригинальный большой прямоугольник? Возможно ли это?

Мой английский не так уж велик, поэтому немного сложно объяснить. Если вам нужно больше объяснять, я могу нарисовать сценарий в краске или что-то еще.

ответ

1

Вы можете использовать sf::Transformable::setOrigin, чтобы задать начало трансформации каждого маленького прямоугольника в центральную точку большого.

Обратите внимание, что это станет началом всех преобразований, например. маленькие прямоугольники будут масштабироваться относительно этого нового центра, но, вероятно, это желаемое поведение.

+0

Означает ли это, что мне еще нужно поворачивать каждый маленький прямоугольник, как если бы я вращал большой прямоугольник? Итак, поверните каждый маленький прямоугольник, а затем используйте sf :: Transformable :: setOrigin? – user3881815

+0

Да, только вы 'setOrigin' сначала, а затем вращаете их по своему усмотрению. Я должен сказать, что обычно вы используете иерархию преобразований для достижения этого, но для этого вам нужно будет предоставить свой фактический код. – Ap31

+0

Вижу, спасибо! Я попробую сейчас и посмотрю, смогу ли я заставить его работать – user3881815

 Смежные вопросы

  • Нет связанных вопросов^_^