| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1414 人关注过本帖, 1 人收藏
标题:atan2函数改写arccos函数的问题
只看楼主 加入收藏
fairsky1314
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-6
结帖率:66.67%
收藏(1)
已结贴  问题点数:20 回复次数:14 
atan2函数改写arccos函数的问题
theta=atan2(P[i+1].y-P[i].y, P[i+1].x-P[i].x);
if( P[i+1].y-P[i].y < 0.0 ) theta=theta + 2*M_PI;
if( i>N ) theta=theta + 2*M_PI;
return (theta/M_PI*180.0);
搜索更多相关主题的帖子: return 
2011-08-06 13:13
fairsky1314
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-6
收藏
得分:0 
我有这个程序atan2的源程序
但是需要改写的好像就这个部分  
如果需要我可以把原程序发出来
2011-08-06 13:15
fairsky1314
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-6
收藏
得分:0 
没有好心人能帮帮忙么?
2011-08-06 15:21
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:10 
楼主可以把完整的代码贴上来吗

                                         
===========深入<----------------->浅出============
2011-08-06 16:04
fairsky1314
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-6
收藏
得分:0 
******源代码******

#include <stdio.h>
#include <math.h>

struct point2{
    double x;
    double y;
};

double angle(struct point2 P[], int i, int N);

int main()
{
    int i, j, k=1, n=3, m=5;
    struct point2 v[256] = {{0.0,0.0},{5.0,2.0},{11.0,2.0},{8.0,5.0}};
    struct point2 w[256] = {{0.0,0.0},{0.0,-3.0},{1.0,-1.0},{1.0,1.0},{-1.0,1.0},{-1.0,-1.0}};
    struct poinr1 S[256];

    i=1; j=1;
    v[n+1]=v[1]; v[n+2]=v[2]; w[m+1]=w[1]; w[m+2]=w[2];
    do{
        S[k].x=v[i].x + w[j].x; S[k].y + w[j].y;
        k++;
        if( angle(v, i, n) < angle(w, j, m) ){
            i++;
        }else if( angle(v, i, n) > angle(w, j, m) ){
            j++;
        }else {
            i++; j++;
        }
    }while( i<=n || j<=m );
    for(i=1; i<k; i++) printf("(%.Of,%.Of)," , S[i].x, S[j].y);
    printf("/n");
}

double angle(struct point2 P[], int i, int N)
{
    double theta;   
   
    theta=atan2(P[i+1].y-P[i].y, P[i+1].x-P[i].x);
    if( P[i+1].y-P[i].y < 0.0 ) theta=theta + 2*M_PI;
    if( i>N ) theta=theta + 2*M_PI;
    return (theta/M_PI*180.0);
}
2011-08-06 16:50
fairsky1314
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-6
收藏
得分:0 
程序中的函数  double angle(struct point2 P[], int i, int N) 用arccos替换来编写
2011-08-06 16:52
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
没看懂  坐等高手吧

                                         
===========深入<----------------->浅出============
2011-08-06 17:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
是原来用反正切求的角度改成用反余弦求是吧?看数学知识呗?三角函数的基本关系。

授人以渔,不授人以鱼。
2011-08-06 21:03
fairsky1314
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-6
收藏
得分:0 
是啊 就是三角函数
哪个高手比较得手的帮帮忙
2011-08-07 00:05
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你这个程序干嘛的?把原题拿出来看看。已经给出坐标系的点坐标,最好就是用反正切求角了,改用余弦干什么。

授人以渔,不授人以鱼。
2011-08-07 00:09
快速回复:atan2函数改写arccos函数的问题
数据加载中...
 
   



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

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