如何使用dx和dy(派生)创建Swift CGVector?

msq*_*qar 4 math ios swift

我试图理解如何在Swift中创建Vector,因为当我执行CGVectorMake()时,告诉我将dx和dy(衍生物)作为CGFloat传递.如何创建仅包含该信息的Vector(行)?

有人能解释一下吗?喜欢傻瓜?我在谷歌搜索但我仍然找不到简单的解释.

假设我想创建一个从点(0,0)到点(5,5)的向量.

Mar*_*n R 8

矢量有许多可能的表示,一个是从一个点到另一个点的"距离"或"位移"(比较欧几里德矢量:表示).

在这个意义上,从(0,0)的矢量以(5,5)是相同的,从(2,3)的矢量以(7,8),并从A点到B点的矢量可以被计算为

let pA = CGPoint(x: 2, y: 3) // Point A(2, 3)
let pB = CGPoint(x: 7, y: 8) // Point B(7, 8)
let vecAB = CGVector(dx: pB.x - pA.x, dy: pB.y - pA.y) // Vector from A to B
print(vecAB) // CGVector(dx: 5.0, dy: 5.0)
Run Code Online (Sandbox Code Playgroud)

因此dx,dy代表"delta X"和"delta Y",即x和y方向上的点的距离.在上面的例子中,你可以读vecAB作"在x方向移动5个单位,在y方向移动5个单位",你会得到相同的结果A(0, 0)B(5, 5).

从(0,0)到(5,5)或从(2,3)到(7,8)的"线段"不能仅由矢量表示.你需要两个点,或一个点和一个矢量.