繁体   English   中英

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

[英]2D transforms in ellipse drawing algorithm

我正在尝试使用2.5D图形引擎(核心动画层)绘制3D椭圆,该引擎仅允许我使用必须使用旋转和平移才能移动到位的线段来构成椭圆。 我在操作顺序上遇到麻烦,无法正确绘制。 那里有图形大师或游戏程序员可以帮助我吗?

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

在此处输入图片说明

对于椭圆多边形中的每个线段,我首先创建一个长度正确的线段,然后将其平移到点P1,然后将其旋转PI / 2 + theta,但这显然行不通。

自从我在大学上图形学课程以来已经有10年了,有人可以对我做错的事情慢跑吗?

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

正确的过程是:

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM