将转换矩阵应用于圆

时间:2011-04-07 04:01:31

标签: language-agnostic transformation linear-algebra geometry

我正在为我的游戏构建一个2D级别的编辑器,你可以处理两种类型的几何形状,即圆形和多边形。

我已经有了它,所以我可以将任何变换矩阵应用于多边形,并且顶点将正确转换。我现在正在考虑如何将变换矩阵应用于圆圈。

我的圆圈由中心位置和半径定义。问题在于,因为圆圈仅由一个点定义,所以矩阵缩放操作将导致圆圈被翻译,而不是缩放。

我不确定这是否可行,但我的解决方案是在转换圆圈时,将两个临时顶点放在相对侧的圆的边缘上,将转换应用于这些顶点,然后重新创建位置(两个顶点之间的中点)和半径(两个顶点之间的距离除以2)。

使用转换矩阵转换圆是否有更好/更简单的方法?

1 个答案:

答案 0 :(得分:1)

我会拿两个点:圆圈的中心和边缘上的任何一点。这样,你已经拥有了新的中心,你只需要计算获得半径的距离。这就像你提出的那样,但稍微简单一些。