ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

向量相关

2022-04-26 18:03:38  阅读:188  来源: 互联网

标签:AB double vec 向量 相关 UF 单位向量


向量基础知识:

单位向量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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有