c# - 如何找出两个向量之间的角度是外部角度还是内部角度? (在 3D 空间中)

标签 c# algorithm math trigonometry angle

我看了这篇文章,


How to find out if the angle between two vectors is external or internal?

我知道如何找出 2 个向量之间的角度,但它总是给我内角,但我希望它总是给我逆时针方向的角度,即使它大于 180。


我有类似的问题。

唯一不同的是我的两个向量在 3D 空间中,

A = (x1, y1, z1)

B = (x2, y2, z2)

如何判断两个向量之间的夹角是外夹角还是内夹角?

(从A到B,逆时针方向,0~360)

最佳答案

3D空间中没有顺时针或逆时针之分。如果给定两个向量 A 和 B,则它们之间正好存在一个角度。这是一个非常典型的选择:在由 A 和 B 定义的平面中连接它们的两个角度中较小的一个(即平行于这两个向量的平面。只有一个选择,除非 A 和 B 平行)。

因此,如果您想要这些角度中较大的一个,只需从 360 中减去较小的角度(通常称为 A 和 B 之间的角度)。

关于c# - 如何找出两个向量之间的角度是外部角度还是内部角度? (在 3D 空间中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38388972/

相关文章:

c# - 从输入中转义的 SQL 特殊字符

android - Apache Math 上的私有(private)访问

python - 欧拉计划数 338

c# - 按名字和姓氏搜索用户登录 ID

c# - 汇总一个集合的所有属性并动态赋值给另一个对象

c# - 在 LINQtoSQL 中处理 SQLite 自动增量列映射

algorithm - 线段树、区间树、二进制索引树和范围树之间有什么区别?

php - 时代集联合与淘汰

任何语言都需要的算法 - 与数组相关

c# - Pie 内的点