从中心而不是从左、中旋转
Posted
技术标签:
【中文标题】从中心而不是从左、中旋转【英文标题】:Rotating from center rather than from left, middle 【发布时间】:2011-08-16 23:24:20 【问题描述】:我正在开发一个骨骼动画系统,每个骨骼的角度都基于其父级。我必须从父关节的末端旋转该骨骼以使该角度准确,如本图的第一部分所示:
我需要做的是插图的第二部分。这是因为我的绘图 API 只支持围绕位图中心旋转。
谢谢
【问题讨论】:
我不确定我是否完全理解这一点,但是如果您想围绕特定点旋转,那么您可以通过 (-anchor.x, -anchor.y) 平移整个形状,然后旋转,然后通过 (anchor.x, anchor.y) 进行平移 【参考方案1】:将旋转与平移相结合。围绕中心旋转图形,然后将其移动到应在的位置。
【讨论】:
翻译会是什么? 旋转后,您将向下平移图像宽度的一半。【参考方案2】:一种选择是在位图中引入额外的空白像素。如果只能围绕位图的中心旋转,请考虑将位图的宽度加倍然后平移要旋转的图像使其与右侧齐平会发生什么。
例如,假设你的图片是
+-------+
X image |
+-------+
X 是您要旋转的点。现在,构建这个图像:
+-------+-------+
| blank X image |
+-------+-------+
如果您围绕此图像的中心旋转,请注意您是在 X 的正上方旋转,这是您最初想要做的。生成的旋转图像如下所示:
+---+
| b |
| l |
| a |
| n |
| k |
+-X-+
| i |
| m |
| a |
| g |
| e |
+---+
现在,您只需提取图像的下半部分即可获得原始图像,围绕指示的 X 点旋转 90 度。
希望这会有所帮助!
【讨论】:
以上是关于从中心而不是从左、中旋转的主要内容,如果未能解决你的问题,请参考以下文章