椭圆绘制算法中的2D变换

时间:2014-09-01 18:16:42

标签: ios algorithm graphics 3d core-animation

我试图用2.5D图形引擎(核心动画图层)绘制一个3D椭圆,这样我只能用椭圆线组成椭圆,这些线段必须使用旋转和平移移动到位。我的操作顺序有问题,无法正确绘制。那些可以帮助我的图形大师或游戏程序员?

这是描述我当前方法的图像:

enter image description here

对于椭圆多边形中的每个线段,我首先创建一个具有正确长度的线段,然后将其转换为点P1,然后通过PI / 2 + theta旋转该点,但这显然是不工作。

自从我在大学读图形课以来已经10年了,有人可以慢慢记忆我的错误吗?

1 个答案:

答案 0 :(得分:0)

我在清理代码时意外地找到了解决方案,以便在此发布!

正确的程序是:

CATransform3D transform = CATransform3DIdentity;
transform = CATransform3DTranslate(transform, -size.width/2.0, 0, 0);
transform = CATransform3DTranslate(transform, point.x, 0, point.y);
transform = CATransform3DRotate(transform, M_PI_2+angle, 0, 1, 0);
transform = CATransform3DTranslate(transform, -size.width/2.0, 0, 0);