2011-04-07 164 views
0

我正在为我的游戏构建2D关卡编辑器,您可以处理两种类型的圆形和多边形几何图形。将变换矩阵应用于圆形

我得到它的工作,所以我可以将任何转换矩阵应用到多边形,顶点将正确转换。我现在想着如何将变换矩阵应用于一个圆。

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

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

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

回答

1

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