首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 游戏天堂 > 游戏开发 > 反射向量的计算
【标  题】:反射向量的计算
【关键字】:
【来  源】:http://blog.csdn.net/happy__888/archive/2007/03/29/1545432.aspx

反射向量的计算

在计算机图形学应用过程当中, 无论是二维环境还是三维环境, 经常涉及到碰撞反弹的问题

这个问题对应之际的数学问题就是反射向量的计算问题

一个向量V, 在法向量为N的平面上产生的反射向量V'的计算的问题

这个向量有个简单的计算技巧, 效率非常的高

利用反射原理和向量知识, (v', 和 -v关于法向量对称 )我们知道有:

      v'- v = alpha * N/|N|      alpha是一个常数  N/|N| 是单位法向量

如果我们知道了alpha这个常数就可以直接得到v' = v + alpha * N/|N|

alpha 是多少呢,  alpha是-v向量在N向量上的投影长度

-v * N = |-v| * |N| * cosCita = alpha * |N| *0.5

所以 alpha = 2*(-v *N)/|N|

从而 v' = v + 2*(-v*N)/|N| * N / |N|  = v  - 2*(v*N)*N/(N*N)

注意这个公式当中, v, N都是非标准向量(模不是1)的

     整个计算公式只涉及到一次除法和若干(二维和三维下不同)次加法和乘法

如果N是单位向量, 可退化为:  v' = v - 2 * (v*N) *N , 还可以进一步减少计算量

 

 

手机网游中道具,技能,特殊状态相关的一些想法:【上一篇】
Direct3D学习(一):3D Sierpinski镂垫绘制:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • 关于如何修改启动方式和文本模式下默认字体的问题
  • 批量創建目錄
  • SAN专用术语参考表
  • Xgl 问题解决
  • 14.5.1 Literals
  • bash Shell中函數的應用小結
  • Red Hat Linux 9网络配置
  • 网络流量监控器mrtg
  • 修复 Vista 和 XP 双系统的启动
  • C++拷贝构造函数深入分析以及重写operator =
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.