如何在iOS中给定中心点和角度画线?

Posted

技术标签:

【中文标题】如何在iOS中给定中心点和角度画线?【英文标题】:How to draw line given a center point and angle in iOS? 【发布时间】:2013-03-14 21:50:05 【问题描述】:

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

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

【问题讨论】:

***.com/a/1571429/1311910 【参考方案1】:

这从简单的三角函数开始。您需要计算第二个点的 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);

如果终点不在屏幕上也没关系。

【讨论】:

可能有用:如果您需要在弧度和度数之间进行转换 - iosdevelopertips.com/graphics/…

以上是关于如何在iOS中给定中心点和角度画线?的主要内容,如果未能解决你的问题,请参考以下文章

iOS Swift - 在 UIImage 上画线以保存到文件

如何找到两个角度之间的差异?

生成给定距离的坐标,距中心的角度

Android:如何在给定角度转换纬度和经度?

加工中心主轴如何角度定位?

iOS:在两个动画视图之间画线