从中心而不是从左,中间旋转

时间:2011-08-16 23:24:20

标签: c++ algorithm geometry

我正在研究一个骨骼动画系统,每个骨骼的角度都是基于它的父级。我必须从该关节的父关节末端旋转该骨骼才能准确,如本插图第一部分所示:

enter image description here

我需要做的是插图的第二部分。这是因为我的绘图API仅支持围绕位图的中心旋转。

由于

2 个答案:

答案 0 :(得分:3)

将旋转与平移相结合。围绕中心旋转图形,然后将其移动到应有的位置。

答案 1 :(得分:1)

一种选择是在位图中引入额外的空白像素。如果只能围绕位图的中心旋转,请考虑如果将位图的宽度加倍然后平移要旋转的图像以使其向右冲洗,会发生什么。

例如,假设您的图片是

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

其中X是您想要旋转的点。现在,构建此图像:

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

如果围绕此图像的中心旋转,请注意您正在X的顶部向右旋转,这是您首先要做的事情。生成的旋转图像如下所示:

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

现在,您只需提取图像的下半部分即可获得原始图像,围绕指示的X点旋转90度。

希望这有帮助!