You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取旋转状态下Sprite尖端的位置

获取旋转后Sprite尖端位置的方法

嘿,这个问题确实得靠数学计算来解决,核心就是用三角函数结合旋转矩阵,其实没那么复杂,我给你拆解清楚:

首先你得先明确两个关键信息:

  • 未旋转时,Sprite尖端相对于原点(0,0)的原始本地坐标(比如假设你的Sprite是个朝上的箭头,原始尖端可能在(0, 10),这个得根据你的Sprite实际尺寸和锚点来确定)
  • Sprite当前的旋转角度(注意区分是弧度还是角度,不同游戏引擎的单位不一样,比如Unity用角度,Godot默认用弧度,计算前要统一单位)

手动计算的核心公式

旋转后的尖端坐标(x, y)可以用标准的2D旋转矩阵公式推导出来:

x = 原始x坐标 * cos(旋转角度) - 原始y坐标 * sin(旋转角度)
y = 原始x坐标 * sin(旋转角度) + 原始y坐标 * cos(旋转角度)

举个实际例子:假设原始尖端在(0, 5),Sprite顺时针旋转了90度(转成弧度是π/2),代入公式:
cos(90°)=0,sin(90°)=1
计算后:
x = 00 - 51 = -5
y = 01 + 50 = 0
所以旋转后的尖端位置就是(-5, 0),完全符合直观的旋转结果~

偷懒小技巧(引擎自带API)

要是你用的是Unity、Godot这类游戏引擎,其实不用自己写三角函数,直接用引擎提供的坐标转换API就行:
比如Unity里,你可以把尖端的本地坐标传入transform.TransformPoint(originalTipPos),引擎会自动帮你计算旋转后的世界坐标,原理和上面的公式是一样的,只是帮你封装好了。

⚠️ 注意:一定要确认原点(0,0)是Sprite的本地坐标原点还是锚点位置,要是锚点不在(0,0),得先把尖端坐标转换成相对于锚点的坐标再计算哦!

内容的提问来源于stack exchange,提问作者Levy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:08:37