关于objective C:如何在iOS中给定中心点和angular画线? | 珊瑚贝

How to draw line given a center point and angle in iOS?


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

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

  • stackoverflow.com/a/1571429/1311910


这从简单的三角函数开始。您需要计算第二个点的 x 和 y 坐标。以 0,0 为原点,将一条直线向右视为 0 度,逆时针方向(有些人为逆时针方向),您可以:

1
2
3
double angle =// angle in radians
double newX = cos(angle);
double newY = sin(angle);

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

然后将原点相加得到最终点。

假设你有 CGPoint start、double angle 和一个长度,你的最后一点是:

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

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

  • 可能有用:如果您需要在弧度之间转换


来源:https://www.codenong.com/15420861/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?