其他分享
首页 > 其他分享> > 向量相关

向量相关

作者:互联网

向量基础知识:

单位向量e:模(向量算出来的长度)等于1的向量

AB=(a,b,c)  BC=(d,e,f) 

向量的长度|AB|= √(a2 +b2+c2)

单位向量、长度、向量的关系:AB=|AB|*e

向量加减:AB±BC=AC= (a±d,b±e,c±f) 

向量数乘:k*AB=(k*a,k*b,k*c)

向量数除:AB/k=(a/k,b/k,c/k)

向量相乘:AB*BC=|AB|*|BC|*cos<ABC>=a*d+b*e+c*f

 

 

1.两个向量之和 UF_VEC2_add(2维)

头文件#include<uf_vec.h>

使用说明UF_VEC2_add(double-输入矢量1,double-输入矢量2,double-输入矢量和)

    double vec1[2] = {10.0, 0.0};

    double vec2[2] = {0.0, 10.0};

    double vec_sum[2];

    UF_VEC2_add (vec1, vec2, vec_sum);

三维矢量转二维,z坐标去除(2维)

   double vec_3D [3];

   double vec_2D [2];

UF_VEC3_vec2 ( vec_3D,vec_2D [2])

二维矢量转三维,z为0(3维)

     double v3[3];

     UF_VEC2_vec3 (vec_sum,v3);

 

两个向量之和UF_VEC3_add(3维) 

头文件#include<uf_vec.h>

UF_VEC3_add(double-输入矢量1,double-输入矢量2,double-输入矢量和)

    double vec1[3] = {10.0, 0.0,0.0};

    double vec2[3] = {0.0, 10.0,0.0};

    double vec_sum[3];

    UF_VEC3_add (vec1, vec2, vec_sum);

   //vec_sum= vec1+ vec2;

 

向量映射(一个点通过一个向量映射到另一个点)

使用说明UF_VEC3_affine_comb(要移动的点G,移动的距离值k,移动的单位向量e,移动后的点)--移动的向量也可不是单位向量,但是如不是单位向量对应的移动距离值就必须是:移动的大小k/移动向量的大小|e|,其原理相当于点G通过向量k*e移动到另一个点,即向量OG+向量k*e与其结果等同;

1.正常方式-单位向量-移动距离

double vec[3] = { 20.0,30.0,40.0 };  double K=625.0; //沿着单位向量移动距离为625 double e[3] = { 9.0/25.0,13.0 / 25.0,20.0 / 25.0 }; // 单位向量 double vec_comb[3]; UF_VEC3_affine_comb(vec, K, e, vec_comb);   2.其他方式-非单位向量AB-移动距离k=625,若要保证沿着向量AB移动距离为K,即验证向量AB的单位向量e移动距离k,需要的是K1*AB=k*e,所以K1=k/|AB| double vec[3] = { 20.0,30.0,40.0 }; double K1 = 25.0;//非单位向量值等于 625/|vec_to_scale[3]|=625/√(9²+13²+20²) =625/25=25 double AB[3] = { 9.0,13.0 ,20.0  }; // 非单位向量 double vec_comb[3]; UF_VEC3_affine_comb(vec, K1,AB, vec_comb);  

3.相当于向量之和

double vec[3] = { 20.0,30.0,40.0 };

double ddd[3] = { (9.0 / 25.0)*625,  (13.0 / 25.0) * 625,  (20.0 / 25.0) * 625 }; // 单位向量*距离625
    double vec_comb[3];
    UF_VEC3_add(vec, ddd, vec_comb);

以上3种方式映射后的点vec_comb结果等同。

 

标签:AB,double,vec,向量,相关,UF,单位向量
来源: https://www.cnblogs.com/kangkangfive/p/16195808.html