C语言初学小问题,输入两个三维向量的系数,求组成平行四边形的面积,为啥求出的面积为0?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言初学小问题,输入两个三维向量的系数,求组成平行四边形的面积,为啥求出的面积为0?相关的知识,希望对你有一定的参考价值。

C语言初学小问题,输入两个三维向量的系数,求组成平行四边形的面积,为什么求出的面积为0?代码如下
#include<stdio.h>
#include<math.h>
area_function(double a1,double a2,double a3,double b1,double b2,double b3)

double i,j,k,z,area;
i=a2*b3-b2*a3;
j=a1*b3-b1*a3;
k=a1*b2-b1*a2;
z=i*i-j*j+k*k;
area=sqrt(z);
return (area);

main()

double a1,a2,a3;
double b1,b2,b3;
double c1,c2,c3;
printf("A=a1*i+a2*j+a3*k\nB=b1*i+b2*j+b3*k\n");
printf("Please input 9 values that correspond to a1,a2,a3,b1,b2,b3, in order to calculate the area of the parallelogram.\n");
scanf("%lf %lf %lf %lf %lf %lf",&a1,&a2,&a3,&b1,&b2,&b3);
printf("area=%lf",area_function(a1,a2,a3,b1,b2,b3));

对多边形A1A2A3、、、An(顺或逆时针都可以),设平面上有任意的一点P,则有:
S(A1,A2,A3,、、、,An)
= abs(S(P,A1,A2) + S(P,A2,A3)+、、、+S(P,An,A1))
P是可以取任意的一点,用(0,0)时就是下面的了:
设点顺序 (x1 y1) (x2 y2) ...(xn yn)
则面积等于
|x1 y1| |x2 y2| |xn yn|
0.5 * abs( | | + | | + .+ | | )
|x2 y2| |x3 y3| |x1 y1|
其中
|x1 y1|
| |=x1*y2-y1*x2
|x2 y2|
因此面积公式展开为:
|x1 y1| |x2 y2| |xn yn|
0.5 * abs( | | + | | + .+ | | )=0.5*abs(x1*y2-y1*x2+x2*y3-y2*x3+...+xn*y1-yn*x1)
|x2 y2| |x3 y3| |x1 y1|
参考技术A 难磕睡刀凹发酵饲料蒂

向数学达人求助,如何求到平面上五个任意的点距离最近的点的位置?已知那五个点的位置

参考技术A 请表述清楚。是指到五点距离之和最小吗? 如果是请阅读:斯坦纳树问题及其推广一文:http://www.kexuemag.com/artdetail.asp?name=476本回答被提问者采纳 参考技术B 建立三维坐标系,设出此点的坐标x,y,z,用距离公式求使这总距离最小的点就是了 参考技术C 将五个点连接起来组成一个五边形。,求它的垂心 参考技术D 在同一平面内,两条直线的位置关系有()、()、()

以上是关于C语言初学小问题,输入两个三维向量的系数,求组成平行四边形的面积,为啥求出的面积为0?的主要内容,如果未能解决你的问题,请参考以下文章

R语言,分别计算pearson和spearman相关系数

MATLAB如何求相关系数

法向量学习

meshlab的法向量怎么修改

NumPy数组乘法应用:三维空间中点O为点P在某平面的投影,求该平面公式

三维方形坐标空间内转角对应的单位向量