IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]为什么计算机图形学里要使用点积?

    caimouse发表于 2017-01-16 22:05:31
    love 0

    向量的点积,也叫向量的内积、数量积,对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,点乘的结果是一个标量。

    设有两个向量:


    则它们的点积为:


    可以表示为: X . Y 

    1)  坐标点到原点的距离公式为:

    sqrt( X1^2  + X2^2 + .... + Xn^2)

    所以可以采用向量点积表示: sqrt( V. V),也就是等于向量与自己本身的点积再开根号。因此在图形学里,计算坐标点到原点的距离,就采用计算点积开根号。


    2)三维空间座标两点间距离公式: 

    记A(x1,y1,z1),B(x2,y2,z2),则A,B之间的距离为 
    d=√[(x1-x2)^2+(y1-y2)^2+(z1-z2)^2]

    所以两点之间的距离可以使用向量表示为:

    设置点P, Q,那么距离等于 向量Q - P的长度,也就是等于sqrt( (Q-P). (Q-P))。


    3)点积可以表示向量夹角:


    点乘的几何意义是可以用来表征或计算两个向量之间的夹角,以及在b向量在a向量方向上的投影。

    根据这个公式就可以计算向量a和向量b之间的夹角。从而就可以进一步判断这两个向量是否是同一方向,是否正交(也就是垂直)等方向关系,具体对应关系为:


         a·b>0    方向基本相同,夹角在0°到90°之间
         a·b=0    正交,相互垂直  
         a·b<0    方向基本相反,夹角在90°到180°之间 


    1. C++标准模板库从入门到精通 

    http://edu.csdn.net/course/detail/3324

    2.跟老菜鸟学C++

    http://edu.csdn.net/course/detail/2901

    3. 跟老菜鸟学python

    http://edu.csdn.net/course/detail/2592

    4. 在VC2015里学会使用tinyxml库

    http://edu.csdn.net/course/detail/2590

    5. 在Windows下SVN的版本管理与实战 

     http://edu.csdn.net/course/detail/2579

    6.Visual Studio 2015开发C++程序的基本使用 

    http://edu.csdn.net/course/detail/2570

    7.在VC2015里使用protobuf协议

    http://edu.csdn.net/course/detail/2582

    8.在VC2015里学会使用MySQL数据库

    http://edu.csdn.net/course/detail/2672




沪ICP备19023445号-2号
友情链接