【发布时间】:2020-09-22 20:21:27
【问题描述】:
我正在使用两个单位向量,但不确定如何计算。我需要它,这样如果他们指向相同的方向答案是 1,相反的方向答案是 0,垂直(向上或向下)答案是 0.5,等等。
示例: 对于两个向量 (1,0) 和 (-1,0) (所以,相反的向量),我得到的答案是 0。 对于两个向量 (1,0) 和 (1/sqrt(2),1/sqrt(2)) (因此,指向 45 度角的单位向量)我得到 0.25。 对于两个向量 (0,1) 和 (-1,0) (所以,垂直向量)我得到 0.5
感谢您对此的任何帮助!
【问题讨论】:
-
您要寻找的实际上只是两个向量之间的角度。当然,该角度将在 [0, 180°] 范围内(如果以弧度表示,则为 [0, Pi])。将结果除以 180(或 Pi),您将得到 [0, 1] 范围内的所需结果。关于向量之间的角度,寻找例如点积:cos alpha = p * q / (| p | * | q |) 如果你知道你有单位向量,你可以省略下部 -> 它会除以 1 * 1。)
标签: python math pygame trigonometry