如何在两点之间得到一个点?

时间:2019-04-06 14:45:08

标签: ios swift uibezierpath

我正在使用UIBezierPath绘制带有两个点的线(以多个角度),但是我想绘制的线短于两个点之间的距离。

我尝试了以下代码在两点之间找到一个点:

let x3 = x2 + 0.9 * (x1 - x2);
let y3 = y2 + 0.9 * (y1 - y2);

它可以1或2个角度工作,但不能在其他角度工作。如何获得正确的分数?谢谢。

===编辑===

enter image description here

现在,我从搜索中了解了一些想法,但仍然无法解决问题

  1. 获取两点之间的距离,然后减去15,因为我希望它更短

    let distance = sqrt(pow((p2.x - p1.x), 2) + pow((p2.y - p1.y), 2)) - 15
    
  2. 获取线角:

    let angle = (p2.y - p1.y) / (p2.x - p1.x)
    
  3. 获取具有距离和角度的点3:

    let x = p1.x + (distance * cos(angle))
    let y = p1.y - (distance * sin(angle))
    

1 个答案:

答案 0 :(得分:0)

这是一个错误的角度问题,函数atan2提供了正确的角度值。现在,整个代码可以完美运行。

let angle = atan2((p2.y - p1.y), (p2.x - p1.x))