计算机图形学 opengl版本 第三版------胡事民 第四章  图形学中的向量工具

一   基础

 1:向量分析和变换   两个工具  可以设计出各种几何对象

  点和向量基于坐标系定义     

  拇指指向z轴正方向    从x轴的正向握向y轴的正向,  可以分为左手和右手坐标系。

  点A到点B的位移称为向量v       则v=B-A     尾-头

  一个n维向量是一个n元组      w=(w1,w2,w3,...)

  用矩阵来表示向量  更加方便清晰

2:向量的基本运算法则

  向量a b      标量s (实数)            a=(a1,a2,a3)   (向量的坐标表示)        b=(b1,b2,b3)    

  加法:a+b=   (a1+b1,a2+b2,a3+b3)    

  乘法:s(a)=(s*a1,s*a2,s*a3)

  有些系统中  标量s表示复数   这里不讨论

3.   向量的线性组合

  m个向量v1,v2,v3...vm

      向量w=a1v1+a2v2+a3v3+...am+vm

  其中am为标量

  特殊的线性组合:仿射组合       凸组合

  向量的仿射组合:标量系数的和为1     且仅和标量有关

          a1+a2+a3+...+am=1

    两个向量a和b的仿射组合形式

        (1-t)a+(t)b

  向量的凸组合:标量的和为1    且   各个标量>=0

4.向量的度量和单位向量

  w为向量

  |w|=根号下(w1^2+w2^2+w3^2+....+wn^2)      勾股定理    模为头尾两点的距离

  有时需要缩放向量   使向量的长度为一,这一过程被叫做向量的归一化     归一化的结果为单位向量

  为了得到a的归一化向量   我们可以用1/|a|数乘a

  a的单位向量=a/|a|     其中|a|!=0

  例如:a=(3,-4)     那么|a|=5     归一化的结果为a^=(3/5,-4/5)      有时我们也吧单位向量看成方向。   

  任何一个向量都可以写成:a=|a|a^        向量的模乘方向

二.点积

1.两个工具   点积   和叉积

  点积得到一个标量,用于二维向量

  叉积得到一个向量   用于三维向量

  a.b=a1b1+a2b2   

  定义:

  n维向量v=(v1,v2,v3...vn)         w=(w1,w2,w3...wn)

    点积d表示为v.w=v1.w1+v2.w2+...vn.wn

  性质:对称性(交换):a.b=b.a

     线性:(a+c).b=a.b+c.b

       同质性:(s.a).b=s(a.b)

       |b|.|b|=b.b

2.两向量的夹角:

  

  b=(|b|cos∠b,|b|sin∠b)

  c=(|c|cos∠c,|c|sin∠c)

  b.c=|b|.|c|.cos∠c.cos∠b+|b|.|c|.sin∠c.sin∠b

  b.c=|b|.|c|.cos∠boc

   上式两边同时除以|b||c|

  cos(∠boc)=b^.c^           两个向量b和c之间的夹角的余弦等于归一化后向量的点积

3.b.c的符号和正交性

  b.c>0      角度小余90度

  b.c=0  角度等于90度      此时b垂直于c    则称向量b和向量c是正交的。

  b.c<0  角度大于90度

  正交也叫直交或者垂直

  三维形式常用  叫做标准单位向量,分别称为 i         j         k

  定义:三维空间的标准单位向量有如下分量的向量

  i=(1,0,0)      j=(0,1,0)     k=(0,0,1)    也可以写成矩阵的形式

  

  任意一个三维向量如(a,b,c)都可以写成另一种形式

    (a,b,c)=ai+bj+ck

4.二维正交向量

  a=(ax,ay)的正交向量为b(-ay,ax)       导致a.b=0    两个向量垂直   ⊥

  与a向量的正交向量有无穷多个     任何一个数成b的结果都是与a正交的

  定义:给定a=(ax,ay)    则a =(-ay,ax)    与a逆时针正交

  a像左转90度a      a想右转90度为-a

  a 的一些有趣的属性

     1.线性 ( a+b) =a +b    对任意标量A    有(Aa) =Aa 

     2.a⊥⊥ =(a ) =  - a

     3.   正交点积  a .b=axby-aybx         其中a=(ax,ay)

      a .a=0        

      |a |^2=|a|^2    两正交向量具有相同的长度

      a .b=-b .a       反对称性      例如(0,1)   和(-1,0)   为反对称性

     4.

       行列式

      

       

       上面的两个证明  将坐标带入后化简即可得到

    5.正交投影和点到直线的距离

    图形学中常出现的问题

      a  将一个向量投影到另一个向量上

      b  将一个向量分解成不同方向上的分量

      c  找到一点到另一条直线的距离

    

     k和m是待定的常数     c=kv+mv

    我们说从c到v的正交投影是kv并且点c到直线的距离是|mv| 

     求出k和m 的方法:等式两边同时乘以一个v

      c.v=kv.v+v.mv

    k=c.v/v.v

    两边同时乘以   v

    m=c.v/v⊥.v

    

    距离=m .v

    

    也等于                                           

  例题:4.3.5

  将向量c(6,4)到v=(1,2)的正交投影  并画出相关的向量

  用4.20的公式:(14/5,28/5)

  例题:4.3.6

  求点c=(6,4)到过点(1,1)和(4,9)的直线的距离

  

 

6.投影的应用:反射

    

    入射角等于出射角

 

posted on 2019-01-06 14:03  学习记录园  阅读(274)  评论(0编辑  收藏  举报