首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >三个点之间的角度?

三个点之间的角度?
EN

Stack Overflow用户
提问于 2010-08-15 12:18:22
回答 7查看 20.9K关注 0票数 19

给定点ABC,我如何找到角度ABC?我正在为一个矢量绘图应用程序制作一个feehand工具,为了最小化它生成的点的数量,我不会添加一个点,除非鼠标位置和最后两个点的角度大于某个阈值。谢谢

我所拥有的:

代码语言:javascript
运行
复制
int CGlEngineFunctions::GetAngleABC( POINTFLOAT a, POINTFLOAT b, POINTFLOAT c )
{
    POINTFLOAT ab;
    POINTFLOAT ac;

    ab.x = b.x - a.x;
    ab.y = b.y - a.y;

    ac.x = b.x - c.x;
    ac.y = b.y - c.y;

    float dotabac = (ab.x * ab.y + ac.x * ac.y);
    float lenab = sqrt(ab.x * ab.x + ab.y * ab.y);
    float lenac = sqrt(ac.x * ac.x + ac.y * ac.y);

    float dacos = dotabac / lenab / lenac;

    float rslt = acos(dacos);
    float rs = (rslt * 180) / 3.141592;
     RoundNumber(rs);
     return (int)rs;


}
EN

Stack Overflow用户

发布于 2010-08-15 16:12:35

使用arccos的方法是危险的,因为我们可能会使它的参数等于,比如说,1.0000001,并以EDOMAIN错误结束。即使是atan方法也是危险的,因为它涉及除法,这可能导致除以零错误。最好使用atan2,将dxdy值传递给它。

票数 4
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3486172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档