希望我这篇论文能够顺利!!!加油加油加油!!!
定义一个结构体表示三维向量
struct VECTOR3D
{
float x,y,z;
};
根据叉乘关系计算出叉乘的模值
float product(VECTOR3D vector1,VECTOR3D vector2)
{
float x,y,z,value;
x=vector1.y*vector2.z-vector1.z*vector2.y;
y=vector1.z*vector2.x-vector1.x*vector2.y;
z=vector1.x*vector2.y-vector1.y*vector2.x;
value=sqrt(x*x+y*y+z*z);
return value;
}
然后给几个特殊值进行验证,通过这两个公式计算理论值,然后比较它与程序运行的结果
a*b=|a|*|b|cos(theta);
|a×b|=|a|*|b|sin(theta)
特例1平行的两个向量,理论值应该为0,程序运行结果如下,满足
v1= (1,1,1)
v2= (2,2,2)
|v1×v2|= 0
特例2夹角为90度的两个向量,理论值应该为根号18,即4.2426,程序结果满足
v1= (1,-1,1)
v2= (1,2,1)
|v1×v2|= 4.24264
特例3取两个相关性不大的向量,理论值应该为43.7493,结果满足
v1= (1,-2,5)
v2= (5,7,-3)
|v1×v2|= 43.7493
至此,可以说明程序计算叉陈模值结果正确