在iOS中如何绘制给定中心点和角度的线?

时间:2013-03-14 21:50:06

标签: ios objective-c cocoa-touch coordinates quartz-graphics

这是一个iOS问题,因为我目前无法做坐标几何。给定CGPoint作为线将通过的点和弧度的角度。如何绘制一条延伸到屏幕边界的线(无限线)?

我使用Quartz2d来执行此操作,用于创建行的API仅限于两点作为输入。那么如何将点和角度转换为iOS设备边界上的两个点?

1 个答案:

答案 0 :(得分:8)

这从简单的三角学开始。您需要计算第二个点的x和y坐标。原点为0,0并将直线向右移动为0度,然后逆时针移动(对于某些人来说是逆时针方向),您可以:

double angle = ... // angle in radians
double newX = cos(angle);
double newY = sin(angle);

假设半径为1.每倍乘以所需半径。选择一个比屏幕大的数字,例如iPhone为480或iPad为1024(假设您需要点而不是像素)。

然后添加原始点以获得最终结果。

假设您有CGPoint startdouble angle和长度,最后一点是:

double endX = cos(angle) * length + start.x;
double endY = sin(angle) * length + start.y;
CGPoint end = CGPointMake(endX, endY);

如果终点不在屏幕上,则可以。