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

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

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

解决方法

这从简单的三角学开始.您需要计算第二个点的x和y坐标.原点为0,0并将直线向右移动为0度,然后逆时针(对于某些人逆时针方向),您可以:
double angle = ... // angle in radians
double newX = cos(angle);
double newY = sin(angle);

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

然后添加原点以获得最终点.

假设你有CGPoint开始,双倍角度和长度,你的最后一点是:

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

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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...