两向量夹角问题

swing_3 2008-06-06 10:48:36
用余弦值求出的角度只能在180以内
如果相得到360内的夹角 有没有什么好方法呢
...全文
1021 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2008-06-06
  • 打赏
  • 举报
回复
如果返回值为负,应该加上360度。
菜牛 2008-06-06
  • 打赏
  • 举报
回复
其实应该加上360度。
leelittlelong 2008-06-06
  • 打赏
  • 举报
回复
没有逗你。。。。
如果你一定要大于180度的,就这样办好了。
我觉得得到小雨180度的才正常。。
swing_3 2008-06-06
  • 打赏
  • 举报
回复
ls的你在逗我吧。。
leelittlelong 2008-06-06
  • 打赏
  • 举报
回复
用360减去你用余弦求出的角度。
Joephia 2008-06-06
  • 打赏
  • 举报
回复

[quote=补丁.版本1.0beta1]

正常的夹角是0-180度的范围

想要得到180-360度范围的夹角

还要考虑边的开始和结束问题

以及顺时针/逆时针的 正负方向问题

[quote]
Joephia 2008-06-06
  • 打赏
  • 举报
回复

余弦值求出的角度只能在180以内
如果相得到360内的夹角 有没有什么好方法呢

Answer
看来楼主不是要余弦值,而是要角度

那应该用的是 arccos 函数

如果光有余弦值,函数给的角度范围则是 0-180

所以需要额外的条件来判断角度,比如两条边的斜率,顶点的位置,边的方向(顶点开始)

在向量上取样本是最好的方法
wutaihua 2008-06-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 swing_3 的回复:]
有什么好方法能够判断出角度是大于180还是小于180的情况
[/Quote]

单从求余弦的角度来说,我们只可以求到结果,而且这个结果在0到360度之间的值有两个,如果非要求数据的是哪个的话,是要看图形说话的,如果非要知道两个值才可以的话,除非知道另外一个三角函数值比如同时知道sinα 和 cosα的值,这就可以判定了
wutaihua 2008-06-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 swing_3 的回复:]
看来我没说明白
我算的是一条向量到另一条向量的角度
这样有可能是大于180的
而余弦值只能计算出两个向量间的夹角而不分哪个向量为起始量
[/Quote]

我的方法是可以的,我也给除了算法,其实只要是得到夹角,如果两个向量的实际夹角α>360度,直接用360度减去你计算得到的夹角(是0到180度之间),证明过程也给你了
swing_3 2008-06-06
  • 打赏
  • 举报
回复
有什么好方法能够判断出角度是大于180还是小于180的情况
wutaihua 2008-06-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wutaihua 的回复:]
cosα 在(0,π)内是逐渐递减的一个周期,而且是一个偶函数,所以你如果获得了π内的数据;

C/C++ code
根据

f(π - x) = f(π + x);

所以
f(x) = f(2π - x);




就是说,直接用2π 减去你所得到的角度是可以的比如90度,和270度是对应的,大小一样
[/Quote]
--------
π = 180度
2π = 360度
swing_3 2008-06-06
  • 打赏
  • 举报
回复
看来我没说明白
我算的是一条向量到另一条向量的角度
这样有可能是大于180的
而余弦值只能计算出两个向量间的夹角而不分哪个向量为起始量
wutaihua 2008-06-06
  • 打赏
  • 举报
回复
cosα 在(0,π)内是逐渐递减的一个周期,而且是一个偶函数,所以你如果获得了π内的数据;

根据

f(π - x) = f(π + x);

所以
f(x) = f(2π - x);


就是说,直接用2π 减去你所得到的角度是可以的比如90度,和270度是对应的,大小一样

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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