已知三个点a,b,c,可以确定一段圆弧。怎么确定圆弧是逆时针,还是顺时针。

zghanhailiang 2010-11-25 09:07:17
已知三个坐标点a,b,c,可以确定一段圆弧。一个目标沿着a向b,c运动,请问目标是顺时针运动,还是逆时针运动。
...全文
991 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
iambic 2010-11-25
  • 打赏
  • 举报
回复
转换成极坐标。
matrixcl 2010-11-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 f23505106 的回复:]
猜测一下
连接a点c点得到直线AC
当b位于直线AC的两侧时分别代表了顺时针和逆时针
[/Quote]

应该是射线AC 右侧逆,左侧顺。怎么判断左右是个问题
matrixcl 2010-11-25
  • 打赏
  • 举报
回复
不考虑三点共线的情况

1 求出圆心0

2.分别求出AO的斜率及A和O的位置关系,求出A角度。这个结果应该是一个[0, 360)的值(或者说弧度表示0到2PI)

3.同理求出B和C的角度,它们也应该是一个[0, 360)的值。A\B\C的角度应该各不相同,否则有两点重合

4.判断B的角度是否小于A的角度,若小于就给B加360,直到B的角度大于A。 即 0 < B角 - A角 < 360

5.同上,保证C角大于B角。 即 0 < C角 - B角 < 360

6.判断 C角-A角的值。 如果大于360, ABC顺时针;否则ABC逆时针


原理:按ABC的次序在圆弧上逆时针移动。如果ABC是顺时针,移动的距离超过一圈
arong1234 2010-11-25
  • 打赏
  • 举报
回复
三点决定的圆弧很容易找到圆心,找到圆心后很容易找到方向的
假定圆心O(x0,y0), A(x1,y1), B(x2,y2)
那么复数(x2-x0)+j(y2-y0)
除以复数:(x1-x0)+j(y1-y0)

得到一个复数
这个复数的ke^r形式中,如果r大于0,则逆时针,否则顺时针
zghanhailiang 2010-11-25
  • 打赏
  • 举报
回复
网友f23505106的方法,好像可行。
f23505106 2010-11-25
  • 打赏
  • 举报
回复
猜测一下
连接a点c点得到直线AC
当b位于直线AC的两侧时分别代表了顺时针和逆时针
科技完美生活 2010-11-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fanghaze 的回复:]
如果a在b、c中间不可能向两个方向运动,不然就很明显
[/Quote]
我错了
科技完美生活 2010-11-25
  • 打赏
  • 举报
回复
如果a在b、c中间不可能向两个方向运动,不然就很明显
zghanhailiang 2010-11-25
  • 打赏
  • 举报
回复
a,b,c是任意三点,找出一个普遍规律,即在什么情况下,目标沿着a,b,c是顺时针运动;在另一种情况下,是顺时针运动。

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧