我正在使用UIBezierPath绘制带有两个点的线(以多个角度),但是我想绘制的线短于两个点之间的距离。
我尝试了以下代码在两点之间找到一个点:
let x3 = x2 + 0.9 * (x1 - x2);
let y3 = y2 + 0.9 * (y1 - y2);
它可以1或2个角度工作,但不能在其他角度工作。如何获得正确的分数?谢谢。
===编辑===
现在,我从搜索中了解了一些想法,但仍然无法解决问题
获取两点之间的距离,然后减去15,因为我希望它更短
let distance = sqrt(pow((p2.x - p1.x), 2) + pow((p2.y - p1.y), 2)) - 15
获取线角:
let angle = (p2.y - p1.y) / (p2.x - p1.x)
获取具有距离和角度的点3:
let x = p1.x + (distance * cos(angle))
let y = p1.y - (distance * sin(angle))
答案 0 :(得分:0)
这是一个错误的角度问题,函数atan2
提供了正确的角度值。现在,整个代码可以完美运行。
let angle = atan2((p2.y - p1.y), (p2.x - p1.x))