跳转至

点乘和叉乘的计算和应用

参考 GAMES101-现代计算机图形学入门-闫令琪

计算

    /// <summary>
    /// 点乘,又叫数量积,内积,点积
    /// 如果两个向量的模是1则返回向量夹角的余弦值
    /// </summary>
    /// <param name="vector1"></param>
    /// <param name="vector2"></param>
    /// <returns>两个向量的模乘以向量夹角的余弦值</returns>
    public static float Dot(Vector3 vector1, Vector3 vector2)
    {
        return vector1.x * vector2.x + vector1.y * vector2.y + vector1.z * vector2.z;
    }



    /// <summary>
    /// 叉乘,又叫向量积、外积、叉积,叉乘的运算结果是一个向量而不是一个标量。
    /// 两个向量的叉积与这两个向量组成的坐标平面垂直。(|a⃗ ×b⃗ |=|a⃗ |⋅|b⃗ |⋅sinθ)
    /// </summary>
    /// <param name="vector1"></param>
    /// <param name="vector2"></param>
    /// <returns></returns>
    public static Vector3 Cross(Vector3 v1, Vector3 v2)
    {
        return new Vector3(v1.y * v2.z - v1.z * v2.y, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y - v1.y * v2.x);
    }