| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1414 人关注过本帖, 1 人收藏
标题:atan2函数改写arccos函数的问题
取消只看楼主 加入收藏
fairsky1314
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-6
结帖率:66.67%
收藏(1)
已结贴  问题点数:20 回复次数:8 
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
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
fairsky1314
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-6
收藏
得分:0 
是啊 就是三角函数
哪个高手比较得手的帮帮忙
2011-08-07 00:05
fairsky1314
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-6
收藏
得分:0 
程序可以执行
执行结果
gcc MS.c
>a.out
(5,-1),(11,-1),(12,1),(12,3),(9,6),(7,6),(4,3),(4,1),
>

目的就是atan2如果换成arccos怎么写
2011-08-07 00:28
fairsky1314
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-6
收藏
得分:0 
回复 12楼 TonyDeng
你误会了
原题就是源程序中的函数[double angle(struct angle(struct point2 P[],int i, int N]用arccos来改写
2011-08-07 01:17
fairsky1314
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-6
收藏
得分:0 
谢了 看了看书  基本上弄明白了
2011-08-08 09:37
快速回复:atan2函数改写arccos函数的问题
数据加载中...
 
   



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

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