Вращаясь от центра, а не слева, посередине - PullRequest
0 голосов
/ 17 августа 2011

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

enter image description here

Что мне нужно сделать, так это вторая часть иллюстрации. Это потому, что мой API рисования поддерживает только вращение вокруг центра растрового изображения.

Спасибо

Ответы [ 2 ]

3 голосов
/ 17 августа 2011

Объедините вращение с переводом.Поверните фигуру вокруг центра, затем переместите ее туда, где она должна быть.

1 голос
/ 17 августа 2011

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

Например,предположим, что ваше изображение

+-------+
X image |
+-------+

, где X - это точка, вокруг которой вы хотите повернуть.Теперь создайте это изображение:

+-------+-------+
| blank X image |
+-------+-------+

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

+---+
| b |
| l |
| a |
| n |
| k |
+-X-+
| i |
| m |
| a |
| g |
| e |
+---+

Теперь вы просто извлекаете нижнюю половину изображения и получаете исходное изображение, поворачиваясь на 90 градусов вокруг указанной точки X.

Надеюсь, это поможет!

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