[SWIFT] Trouvez l'angle entre deux vecteurs

Commentaire

Si l'angle formé par $ \ vec {a} = (a_1, a_2), \ vec {b} = (b_1, b_2) $, qui n'est pas $ \ vec {0} $, est $ \ theta $, alors

\begin{align}
\cos\theta &= \frac{\vec{a}\cdot\vec{b}}{|\vec{a}||\vec{b}|} \\
&=\frac{a_1 b_1 + a_2 b_2}{\sqrt{a_1^2 + a_2^2}\sqrt{b_1^2 + b_2^2}}
\end{align}

Si le cosinus inverse (arc cosinus) de cos $ \ theta $ obtenu ici est obtenu, $ \ theta $ peut être obtenu.

code

func angleBetween(_ vec1: simd_float3, and vec2: simd_float3) -> Float {
   let cosT = (vec1.x * vec2.x + vec1.z * vec2.z) / (sqrt(pow(vec1.x, 2) +
              pow(vec1.z, 2)) * sqrt(pow(vec2.x, 2) + pow(vec2.z, 2)))
   let deg = acos(cosT) * 180 / Float.pi
   return deg
}
let v1 = simd_float3(20, 0, 20)
let v2 = simd_float3(0, 0, 20)
let angle = angleBetween(v1, and: v2)

print(angle) //45 degrés

Recommended Posts

Trouvez l'angle entre deux vecteurs
Comment trouver la distance et l'angle entre deux points sur un plan
Trouvez la différence entre les types de liste
Comment trouver l'angle moyen
Calculez la distance entre la latitude et la longitude de deux points
Différence entre Java et JavaScript (comment trouver la moyenne)
Sortie de la différence entre chaque champ de deux objets en Java
[Android, Java] Méthode pour trouver la date écoulée à partir de deux dates