旋转形状时如何计算形状中的点
Posted
技术标签:
【中文标题】旋转形状时如何计算形状中的点【英文标题】:How to calculate points in a shape when shape is rotated 【发布时间】:2014-04-03 04:29:38 【问题描述】:我有一堆不同的形状,在这些形状上有 20 个点排列在一个网格中。我想弄清楚的是如何计算旋转形状时这些点的位置,这些形状可以从形状中心旋转任意角度。这些点从形状的左上角开始放置。
这里有几个形状示例,其中包含我希望在形状旋转时能够计算的点。我在 0 度处拥有所有形状的所有 x/y 坐标。我正在构建一个 javascript 应用程序,所以如果有人在 JavaScript 中有任何功能,那就太好了,或者如果你可以将我引导到有一些资源的地方。
【问题讨论】:
【参考方案1】:要将点 (Xold,Yold) 绕中心点 (Xc, Yc) 逆时针旋转角度角度,可以使用复杂的affine transformation,由旋转中心到原点的平移、围绕原点的旋转和反向平移组成。结果公式:
Xnew = Xc + (Xold - Xc) * Cos(Angle) - (Yold-Yc) * Sin(Angle)
Ynew = Yc + (Xold - Xc) * Sin(Angle) + (Yold-Yc) * Cos(Angle)
【讨论】:
以上是关于旋转形状时如何计算形状中的点的主要内容,如果未能解决你的问题,请参考以下文章
如何设置悬停效果(注意:只有方形边框在悬停时应该像钻石形状一样旋转,而不是图像)[关闭]