水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
首页
|
上页
|
2/2
|
转到
主题:圆上三个有序点,如何判断是顺时针的还是逆时针的
10楼
|
z16166
|
2023-02-08 01:59:58
|
只看此ID
结合法向量(叉乘)的方向。atan2()函数
https://math.stackexchange.com/questions/878785/how-to-find-an-angle-in-range0-360-between-2-vectors
https://stackoverflow.com/questions/7785601/detecting-if-angle-is-more-than-180-degrees
【 在 anything1999 的大作中提到: 】
: 这个问题解决了,还有一个关联问题,假如目前是逆时针,第一个点到圆心的矢量和第三个点到圆心矢量的夹角,如果判断是大于180的?
: double cosValNew= v1.dot(v2) / (v1.norm() * v2.norm()); //角度cos值
: double angle = std::acos(cosValNew) * 180 / M_PI; //弧度角
: ...................
--
修改:z16166 FROM 114.241.225.*
FROM 114.241.225.*
11楼
|
foliver
|
2023-02-08 06:06:37
|
只看此ID
搞出这么复杂的三角计算。
直接ab,ac的两个向量叉积就可以了。
【 在 anything1999 的大作中提到: 】
: 这个问题解决了,还有一个关联问题,假如目前是逆时针,第一个点到圆心的矢量和第三个点到圆心矢量的夹角,如果判断是大于180的?
: double cosValNew= v1.dot(v2) / (v1.norm() * v2.norm()); //角度cos值
:
: ...................
--来自微微水木3.5.12
--
FROM 223.167.168.*
12楼
|
anything1999
|
2023-02-08 07:42:31
|
只看此ID
不错,准备试试
【 在 z16166 的大作中提到: 】
: 结合法向量(叉乘)的方向。atan2()函数
:
https://math.stackexchange.com/questions/878785/how-to-find-an-angle-in-range0-360-between-2-vectors
:
https://stackoverflow.com/questions/7785601/detecting-if-angle-is-more-than-180-degrees
: ...................
--
FROM 114.249.50.*
13楼
|
Li23
|
2023-02-08 08:28:34
|
只看此ID
这个好
【 在 weibeiqs 的大作中提到: 】
: 起点终点连线
: 判断中间点在这条线的哪一侧就可以了吧
: --
发自「今日水木 on 天」
--
FROM 120.244.220.*
14楼
|
dawei78
|
2023-02-08 08:58:34
|
只看此ID
代码
【 在 anything1999 的大作中提到: 】
: 用三个连接圆心和x轴正向的角度也判断不出来啊
:
: 有什么简单的方法吗?
: --
:
发自「今日水木 on M2102K1C」
--
修改:dawei78 FROM 222.129.32.*
FROM 222.129.32.*
15楼
|
Rome888
|
2023-02-08 10:55:50
|
只看此ID
计算各个点的角度可破
【 在 anything1999 的大作中提到: 】
: 用三个连接圆心和x轴正向的角度也判断不出来啊
:
: 有什么简单的方法吗?
: --
:
发自「今日水木 on TAS-AL00」
--
FROM 114.249.109.*
16楼
|
dilemma
|
2023-02-08 11:05:41
|
只看此ID
叉积,结果一定垂直于圆所在平面
实际就是判断(x2-x1)*(y3-y1)-(x3-x1)*(y2-y1)的符号
【 在 anything1999 的大作中提到: 】
: 用三个连接圆心和x轴正向的角度也判断不出来啊
: 有什么简单的方法吗?
--
FROM 114.250.194.*
首页
|
上页
|
2/2
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版