【问题标题】:Angle between vectors 360 degrees向量之间的角度 360 度
【发布时间】:2019-04-12 08:32:41
【问题描述】:

我想计算一个vector3d和其他vector3d之间的360度角

我已经用 vector3d.AngleBetween 尝试过,但这会产生 180 度的结果

//Create a new 3d vector from average points
Vector3D vector1 = new Vector3D(averageX, averageY, 0);

//Create reference vector
Vector3D vector2 = new Vector3D(averageX-100, averageY, 0);
Vector3D vectorResult1 = new Vector3D();

vectorResult1 = vector2 - vector1;                       

//Other vector to all points in layer
foreach (XYZ d1 in coord)
 {                                
   Vector3D vector3 = new Vector3D(d1.X, d1.Y, d1.Z);
   Vector3D vectorResult2 = new Vector3D();

   vectorResult2 = vector3-vector1;

   //Define a rotation

   double angleBetween = Vector3D.AngleBetween(vectorResult2, vectorResult1);
 }

【问题讨论】:

  • 实际值期望是多少?
  • 为什么选择 360?除非您指定旋转方向,否则没有区别。顺时针 90° 角与逆时针 270° 角相同。
  • 我需要向量之间的每个角度,以便对它们进行排序。结果我想顺时针排序点

标签: c# qvector3d


【解决方案1】:

如果您查看the documentation,您会发现有符号角度不会延伸到 3-D 空间中,因此会返回 0 到 180 度之间的角度。。备注里有。

【讨论】:

    猜你喜欢
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多