| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3790 人关注过本帖
标题:知道圆上2点 再连接圆心与2点 求夹角
只看楼主 加入收藏
ilovezp
Rank: 1
等 级:新手上路
帖 子:6
专家分:1
注 册:2011-9-14
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:12 
知道圆上2点 再连接圆心与2点 求夹角
只有2点和圆心的坐标 还有半径 要怎么求哦 谢谢咯
有能直接求角度或者弧度的函数么
搜索更多相关主题的帖子: 函数 
2011-09-14 17:38
statics
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:163
专家分:625
注 册:2011-8-29
收藏
得分:3 
这是个数学题啊?三个边都知道了,求角度?

惟我独行...
2011-09-14 17:42
ilovezp
Rank: 1
等 级:新手上路
帖 子:6
专家分:1
注 册:2011-9-14
收藏
得分:0 
我想做一个循环 让点在圆上移动 想用极坐标来弄 现在需要夹角给定义出来 但是不知道怎么弄了
2011-09-14 17:45
ilovezp
Rank: 1
等 级:新手上路
帖 子:6
专家分:1
注 册:2011-9-14
收藏
得分:0 
0 0求解答啊 谢谢啦
2011-09-15 11:35
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
你没学过解析几何做这东西干什么?办法是有,但跟你说比较麻烦,还是自己学学数学的好。

授人以渔,不授人以鱼。
2011-09-15 11:39
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
如果你要编程简化,最好把圆心置于坐标系原点,否则要做坐标变换。办法固然很多,视你具体情况而定,但你至少要懂相关的数学知识。求角是很容易的,关键在设计辅助线。

授人以渔,不授人以鱼。
2011-09-15 11:50
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:3 
唉,本来懒得写这种东西,不过看不惯楼上好为人师的态度。没见有什么真本事却喜欢到处教训人。
送楼主两个函数,第一个是求夹角的,0是圆心坐标,1和2是圆上两点(其实这两点在不在圆上跟求夹角没关系),返回值是夹角,注意这是个没方向的角,取值在0到PI之间,想换成带方向的角很简单,删两行代码就行。
第二个我觉得才是你想要的。根据圆心坐标和半径以及圆上一点到圆心连线与x轴的夹角,求该点的坐标。这其实本就是完成极坐标系到笛卡尔坐标系的映射。
程序代码:
#include<math.h>
#define PI    3.1415926535897932384626433832795
double angle(double x0, double y0, double x1, double y1, double x2, double y2)
{
    double r1, r2, dx1, dy1, dx2, dy2, a1, a2, da;
    dx1 = x1 - x0;
    dy1 = y1 - y0;
    dx2 = x2 - x0;
    dy2 = y2 - y0;
    r1 = sqrt(dx1 * dx1 + dy1 * dy1);
    r2 = sqrt(dx2 * dx2 + dy2 * dy2);
    a1 = acos(dx1 / r1);
    if(dy1 < 0) a1 = -a1;
    a2 = acos(dx2 / r2);
    if(dy2 < 0) a2 = -a2;
    da = a2 - a1;
    if(da < 0) da = -da;
    if(da > PI) da = 2 * PI - da;
    return da;
}
void point(double x0, double y0, double r, double angle, double * x, double * y)
{
    *x = x0 + r * cos(angle);
    *y = y0 + r * sin(angle);
}

重剑无锋,大巧不工
2011-09-15 12:34
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
用正切的差角公式就可以求两直线间的夹角。泛酸没用的,气量狭小者很短命,小心过不了三十。

授人以渔,不授人以鱼。
2011-09-15 13:18
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
反正切就是角,两个反正切之差就是所求角,初等数学简单问题,学复杂的东西弄坏了脑子才会写出7楼那样自以为高明的程序。法轮功练多了吧?学人叫阵,道德就先输了,开口骂?年纪还小着呢你,这样并不能找回你以前老子天下第一的虚荣心。

[ 本帖最后由 TonyDeng 于 2011-9-15 13:38 编辑 ]

授人以渔,不授人以鱼。
2011-09-15 13:36
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
嗯,我现在最大的问题就是还是受不了没本事却爱装的货。你一定能活一千年,一万年。

重剑无锋,大巧不工
2011-09-15 13:36
快速回复:知道圆上2点 再连接圆心与2点 求夹角
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023869 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved