向量使用小结——Vector3的使用

常用方法与实现

向量基本运算​​

​​加减法​​:a±b=(ax±bx,ay±by,az±bz)

​​数乘​​:ka=(kax,kay,kaz)

Vector3中实现:

加法:Vector3.Add(Vector3, Vector3);

减法:Vector3.Subtract(Vector3, Vector3)

乘法:Vector3.Multiply(Single, Vector3) / Multiply(Vector3, Single)

 

模长

|a|=√(x⋅x+y⋅y+z⋅z)

Vector3中实现:Vector3.Length()

 

点积(内积)​​

​​定义​​:ab=axbx+ayby+azbz=|a|⋅|b|⋅cosθ

​​性质​​:

  • 交换律:ab=ba
  • 投影:投影长度=ab÷|b|

Vector3中实现:Vector3.Dot(Vector3, Vector3)

 

用途:计算投影;判断是否正交(夹角为90度时: ab=|a|⋅|b|⋅cosθ=0

 

叉积(外积,仅限三维)​​

​​定义​​:a×b=(aybzazby,azbxaxbz,axbyaybx)

​​模长​​:|a×b|=|a|⋅|b|⋅sinθ

​​方向​​:垂直于 a 和 b 所在平面,符合右手定则。

Vector3中实现:Vector3.Cross(Vector3, Vector3)

 

用途:

  1. 叉积的结果是一个 ‌新的向量‌,其方向垂直于参与运算的两个向量 AA 和 BB 所在的平面;
  2. 面积=A×B∣     A 和 B是4平形4边形的两条相邻边向量
  3. 判断点与直线的位置关系‌

    • 在二维空间中,叉积可判断点 P 在直线 AB 的左侧还是右侧:计算向量 AB×AP
      • 结果为正:P 在左侧。
      • 结果为负:P 在右侧。
      • 为零:P 在直线上。
  4. 计算点到线的距离 

若A点到C点的向量为a, A点到B点的向量为b, 那么求B点到AC直线的距离d: d=|a×b| ÷|a|

 

 

运算符重载

Vector3对运算符进行了重载,也就是说对于Vector3的加、减、乘、除等可以直接用类似于a+b这样的操作。

 

参考链接:

MSDN:Vector3 结构 (System.Numerics) | Microsoft Learn

Vector3源码 于github

 

以上先记之以备忘,后续常用再添加。

 

posted @ 2025-04-23 08:17  盛沧海  阅读(10)  评论(0)    收藏  举报