2013-03-14 36 views
6

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

我使用Quartz2d来做到这一点,创建一条线的API仅限于两点作为输入。那么如何将点和角度转换为iOS设备边界上的两点?

+0

http://stackoverflow.com/a/1571429/1311910 – 7usam 2013-03-14 22:00:56

回答

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

这是确定的,如果终点是关闭屏幕。

+0

可能有用:如果您需要在弧度和度数之间进行转换 - http://iosdevelopertips.com/graphics/radians-to-degrees-and-degrees-到radians.html – 2013-11-01 00:29:19

相关问题