zoukankan      html  css  js  c++  java
  • 向量

    向量


    定义与说明

    向量定义

    向量是一种同时具有大小方向的物理量
    几何意义上来说: 向量是有大小和方向的有向线段
    向量没有位置
    零向量是唯一一个没有方向的向量

    2点确定向量

    如果只有一点时,默认另一点为原点(0,0)

    Vector2 pointA = new Vector2(1,2);
    Vector2 pointB = new Vector2(3,4);
    
    //向量AB = (3-1, 4-2); xy分量分别相减,得到向量
    
    

    运算

    向量的大小(长度,模)

    各分量平方和的平方根(利用勾股定理可求)

    
    Vector2 u = new Vector(3, 4);
    
    // 计算向量u的长度
    float length = Math.sqrt(3*3, 4*4);
    
    

    向量与标量相乘

    各分量分别相乘, 返回一个向量
    向量长度扩大n倍,方向不变. 但如果n小于0,则方向反转

    
    float multiple = 5;
    
    // 向量u扩大5(multiple)倍
    Vector2 u = new Vector(3, 4);
    u.x *= multiple;
    u.y *= multiple;
    
    

    标准化向量

    向量/长度
    将向量化为方向不变长度为1的向量, 也称为单位向量法线

    
    Vector2 u = new Vector(3, 4);
    
    // 计算向量u的长度
    float length = Math.sqrt(3*3, 4*4);
    
    // 标准化向量u,使其长度为1,方向不变
    Vector2 Norm_u = new Vector(3/length, 4/length);
    
    
    

    向量加法

    各分量分别相加

    三角形法则

    当向量a的头连接着向量b的尾(通过平移向量). 然后从a的尾向b的头画一个向量c得到三角形
    将上述向量a,b平移得到平行四边形
    上述情况下向量 c = a+b; 这时向量c刚好是平行四边形的长对边


    当向量a的尾连接着向量b的尾(通过平移向量). 然后从a的头向b的头画一个向量c得到三角形
    将上述向量a,b平移得到平行四边形
    b-a则c指向b, 否则相反
    上述情况下向量 c = b-a; 这时向量c刚好是平行四边形的短对边

    向量点乘

    各对应分量乘积的和 u(x,y) 点乘 v(x1, y1) = x*x1 + y*y1
    点乘的结果是一个标量
    向量点乘可以用来求2向量之间的最小角度

    求2向量a和b的最小角度

    1. 通过移动2个向量,使其尾部重合
    2. 取最小角为θ(小于180的角)
    3. Math.acos( (a点乘b) / a的长度 乘以 b的长度 )
    4. 如果a,b为单位向量则可化简为: Math.acos(a 点乘 b)

    当 a点乘b == 0 a和b互相垂直
    当 a点乘b > 0 a和b夹角小于90度
    当 a点乘b < 0 a和b夹角大于90度

    向量叉乘

    叉积只能用于3D向量. 比如用于计算平面法线
    叉积的结果同时垂直于2个相乘的向量

    // 叉积如名字一样,把下面看成上下交叉相乘, 中间是最大的叉叉
    Vector3 u = (x, y, z);
    Vector3 v = (a, s, d);
    
    Vector3 uv = (yd - zs, za - xd, xs - ya);
    // uv同时垂直于向量u和v
    
    
  • 相关阅读:
    Project和Module的介绍
    2016-10-27~2016-11-12面试总结
    读写分离的概念(转)
    hashmap和hashtable,arraylist和vector的区别
    如何删除数据库表的重复数据
    Iterator和ListIterator的区别
    性能提升
    Oracle 查询并修改
    oracle数据库中VARCHAR2(50 CHAR) 和VARCHAR2(50) 有啥区别?
    SQL SERVER 2000安装教程图文详解
  • 原文地址:https://www.cnblogs.com/xueyoucd/p/5379938.html
Copyright © 2011-2022 走看看