求高手们用C语言编写一个函数,根据两个变量自动显示点的坐标(X,Y,Z)

已知条件:
常数量: h,L,α,
变量: β,θ,
有A,B,M,三个点,已知随着β,θ的变动A,B,M三个点的坐标值为:
XA=L*sin(|θ-α|),YA=L*cos(|θ-α|)*cosβ,ZA=L*cos(|θ-α|)*sinβ,
XM=h*sinθ,YM=h*cosθ*cosβ,ZM=h*cosθ*sinβ,
XB=L*sin(θ+α),YB=L*cos(θ+α)*cosβ,ZB=L*cos(θ+α)*sinβ,

用C语言写个小程序实现自动取得A,B,M,三个点的坐标值, 要求编写一个函数,实现上面坐标值的计算, 写出头文件,class,和main程序。
补充一下, α=arctan(3.25/h)

β,θ是来自外部传感器接收到的数据。 写个完整带注释的函数。 要求main里面只调用函数,不写其他命令。。

//class是写成类吗,这个写成类有点多此一举,下面用最简单的函数写的,变量自己改成英文命名
1.h
#include <stdio.h>
#include <math.h>

//宏定义值
#define h XX
#define L XX
#define α XX

double β,θ;
double A[3],B[3],M[3];
void math(β,θ,A,B,M);

1.cpp
#include "1.h"

math(β,θ,A,B,M)
{
    A[0]=L*sin(fabs(θ-α));
    A[1]=L*cos(fabs(θ-α))*cosβ;
    A[2]=L*cos(fabs(θ-α))*sinβ,
    //公式太长自己写
}

void main()
{
    printf("请输入β,θ的值:\n");
    scanf("%f,%f",&β,&θ);
    math(β,θ,A,B,M);
    printf("A的坐标为:(%f,%f,%f)\n",A[0],A[1],A[2]);
    //输出自己写
}

追问

能写全一点吗? 瓦是C菜鸟中的白痴。。要能运行的亲。。

追答

不好意思,你这个写全好麻烦,你还是自学写吧,这个程序就算是初学都可以写,C语言学3节课就到输入输出了就能写这个。
我这个基本思路主要代码都写完了,按照我写的添加修改一下就可以,如果你看都看不懂还学什么C语言。

温馨提示:内容为网友见解,仅供参考
无其他回答

比较一个空间点与两群点的重心的距离,用c语言编
DEV C++及VC++2002编译运行通过(当然是只用C)输入坐标时格式为:X Y Z \/ include <stdlib.h> include <stdio.h> include <assert.h> define PointInit(p) p[0]=0.0,p[1]=0.0,p[2]=0.0 define PointAdd(p0,p1) p0[0]+=p1[0],p0[1]+=p1[1],p0[2]+=p1[2]define PointD...

用C语言编写:编写一个函数,要求在主函数中输入两个数,输出其中最大值...
C语言代码如下:include<stdio.h> int main(){ int a,b;printf("please enter two number:"); ---两个数字用空格隔开,以回车键结束输入。scanf("%d %d",&a,&b);if(a>b)printf("The max is %d",a);else if(b>a)printf("The max is %d",b);else printf("The two Numbers ...

用C语言编写一个程序:定义一个点的坐标,然后定义两个点,求这两个点间...
; return 0;}说明:1、distance() 函数的两个参数 const struct Point *a 和 b 使用了 const 修饰,是表示 a 和 b 在函数执行过程中不会被修改;这样即使函数体内部写错,修改了 a 和 b 的值,编译也不会通过。2、对 double,scanf 用 %lf,printf 用 %f。以上。

C语言编程: 编写一个程序,根据下列公式,实现根据输入的x值,求出y的值...
int *rn=NULL,n,x;while(1){ printf("请输入n和x的值:");scanf("%d%d",&n,&x);rn=funP(n,x);if(rn)printf("x的值为%d,y的值为%d\\n\\n",rn[0],rn[1]);} return 0;} int* funP(int n,int x){ static int rn[2];\/\/数组0保存x,1保存结果y rn[0]=x;if(n==...

...它包含了点的3个坐标值,编写一个函数,计算两个点之间
1、首先我们找到头文件与main函数之间。2、写上,我们的第一个关键字【struct】。3、然后我们对该结构体进行命名。4、在里面,我们便可以编写他的成员。5、可以编写数组也可以是普通变量。6、书写完毕后,我们一定要用分号结束。

c语言编写一个函数,求两数中的最小数。在主函数中输入两个数,调用函...
c语言编写一个函数,求两数中的最小数。在主函数中输入两个数,调用函数求出最小数,再求最小数的平方根的一个可能的代码如下:include <stdio.h>#include <math.h>\/\/定义一个函数,求两数中的最小数int min(int x, int y){ if (x < y) \/\/如果x小于y return x; \/\/返回x else ...

C语言编写一个程序,求x> y的运行结果
以下是一个简单的C语言程序,可以比较两个整数x和y,并打印出相应的结果:在这个程序中,我们首先声明了两个整数变量x和y,然后使用printf函数提示用户输入两个整数。接下来,我们使用scanf函数读取用户输入的整数,并将它们存储在变量x和y中。然后,我们使用一个if-else语句来比较x和y的值。如果x大于y...

一道C语言问题,请各位高手们帮一下。
z_t_c_1 采纳率:32% 来自:芝麻团 擅长: 笔记本电脑 C\/C++ VB 汇编语言 其他编程语言 其他回答 sub的形参与实参是值传递,所以不改变实参的值,所以X3,X4的值不变,而X1,X2是全局变量,在每个函数里都可以用,所以在sub中改变了X1的值 微袅依依 | 发布于2012-03-08 举报| 评论 12 0 sub(x3,x4...

c语言 编写一段程序,读取两个整数,然后显示出前者是后者的百分之几.
可以参考下面的代码:include <stdio.h> void main(){ int a, b;scanf("%d%d", &a, &b);printf("%.2lf %%\\n", (double)a\/b*100);}

C语言编程题:编写一个函数,用于求两个数中的较小数;用主函数调用这个函...
代码如下:include <stdio.h>int comp(int a, int b){ return (a < b) ? a : b;}int main(void){ int a, b; scanf("%d%d", &a, &b); printf("%d\\n", comp(a, b)); return 0;}

相似回答