计算机图形学 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.投影的应用:反射

    

    入射角等于出射角

转载于:https://www.cnblogs.com/dongguolei/p/10228728.html

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

  1. 计算机图形学 opengl版本 第三版------胡事民 第三章更多的绘图工具

    opengl  计算机图形学 第三版   第二部分   第三章更多的绘图工具 3.1   概述 第2章中  我们绘图使用的是屏幕窗口的基础坐标系    以像素为单位 屏幕坐标从左下角x从0延伸到scr ...

  2. Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25

    Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25 目录 Rule20 接口优于抽象类 Rule21 为后代设计接口 Rule22 接口只用于定义类型 ...

  3. 矩阵笔记4:矩阵分析(第三版)-史荣昌-第四章:矩阵分解

    文章目录 0 笔记说明 1 书本内容 1.1 矩阵的满秩分解 1.2 矩阵的正交三角分解(UR.QR分解) 1.3 矩阵的奇异值分解 1.4 矩阵的极分解 1.5 矩阵的谱分解 2 听课笔记 2.1 ...

  4. 某公司的员工分为5类,每类员工都有相应的封装类。(黑马第三版Java基础入门 第四章编程题)

    (1) Employee:这是所有员工总的父类. ① 属性:员工的姓名,员工的生日月份 ② 方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励 ...

  5. 将大核卷积分三步,清华胡事民、南开程明明团队全新视觉骨干VAN,超越SOTA ViT和CNN...

    来源:机器之心 来自清华大学和南开大学的研究者提出了一种新型大核注意力(large kernel attention,LKA)模块,并在 LKA 的基础上构建了一种性能超越 SOTA 视觉 trans ...

  6. 把大核卷积拆成三步,清华胡事民团队新视觉Backbone刷榜了,集CNN与ViT优点于一身...

    梦晨 发自 凹非寺 量子位 | 公众号 QbitAI 在视觉任务上,CNN.ViT各有各的优势和劣势. 于是,以经典Backbone为基础.细节上相互借鉴,成了最近一个热门研究方向. 前有微软Swin ...

  7. 南大周志华清华胡事民入围院士候选!计算机领域共计7人

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 2021 ...

  8. 《数据库原理与应用》(第三版)书后上机练习题——第六章

    <数据库原理与应用>(第三版)书后上机练习题--第六章 书上给的三个表的数据 题目错误的地方 所有关于VB课的题目,这里可以选择把表中的Java课改成VB课,或者把题目中的VB课改为Jav ...

  9. 清华大学胡事民是计算机视觉,ResNet也能用在3D模型上了,清华「计图」团队新研究已开源...

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 用AI处理二维图像,离不开卷积神经网络(CNN)这个地基. 不过,面对三维模型,CNN就没有那么得劲了. 主要原因是,3D模型通常采用网格数 ...

最新文章

  1. Spring Autowired 注入失败总是Null
  2. 百度如何能实时检索到15分钟前新生成的网页?--转
  3. 基于VTK的MFC应用程序开发(1)
  4. 一种 Android 应用内全局获取 Context 实例的装置
  5. python建立列表_python创建列表和向列表添加元素的实现方法
  6. Java编程字符逆序输出_用JAVA编写一程序:从键盘输入多个字符串到程序中,并将它们按逆序输出在屏幕上。...
  7. 机器学习笔记八之机器学习系统设计
  8. python-利用生成器函数生成斐波那契数列
  9. AppList.json文件为空,主界面清缓存后加载后还正常显示
  10. sklearn.neighbors.kneighbors_graph的简单属性介绍
  11. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_15_常用的函数式接口_Predicate接口练习-集合信息的筛选...
  12. 【第二周】结对编程体会
  13. 洛谷OJ:P3811 【模板】乘法逆元(线性递推求逆元)
  14. java加密与解密(一)
  15. 深度学习之图像分类(七)--ResNet网络结构
  16. 结合实际案例谈谈项目管理经验
  17. 当冬日阳光照耀我孤苦的心怀
  18. 使用AVProVideo的一点小坑
  19. 关于ckeditor富文本编辑器上传图片返回“不正确的服务器响应”的解决方案
  20. 【QQ群讨论精华】关于Move,Copy与Referrence

热门文章

  1. 和县机电工程学校工业机器人_成都机电工程学校专业有哪些
  2. 深圳先进院研究生计算机专业,2020年中科院深圳先进技术研究院全日制硕士研究生统考专业说明...
  3. 电商android studio,谷歌 Android Studio 4.0 Beta 5 发布
  4. vue 指令 v-on 函数传参
  5. pytorch 回归预测(时间序列)
  6. python threading.Condition
  7. python click
  8. TensorFlow tf.keras.layers.GlobalAveragePooling1D
  9. c hello world
  10. java createchannel_【原创】java NIO FileChannel 学习笔记 新建一个FileChannel