1、首先需要知道的是,特征尺寸较大,光线可以当作成直线。

2、如图所示,已知入射光线向量I,法向N,那么需要求的包括交点o以及反射光线向量R.

3、假设o点要经过求得了,那么:

OR=IR-IO=2*IP-IO;

又IP=IO+OP;

所以OR=IO+2*OP

即只需要求出OP就可以求出OR.

4、求OP,显然OP为IO在ON方向的投影的负方向。

首先获得N的单位法向量:n=N/|N|

OP=|OP|n

|OP|=|OI|cosθ

cosθ=OI.n/|OI|

|OP|=OI.n=-IO.n

5、所以求出OR.

OR=IO+2*OP=IO+2*|OP|n=IO-2*(IO.n)*n

6、对反射向量进行单位化:

OR_unit=OR/|OR|

7、测试一下,效果如下。

计算光线反射的reflect向量相关推荐

  1. R语言union函数计算数据对象(vector、list、dataframe)的并集:union函数计算两个vector向量、dataframe、列表list的并集

    R语言union函数计算数据对象(vector.list.dataframe)的并集:union函数计算两个vector向量.dataframe.列表list的并集 目录

  2. 如何简便计算两个空间向量之间的欧拉角

    版权声明: 1.这篇教程本人曾在微信公众平台发布过,账号为:机构学菜鸟之家.如果哪位朋友在什么地方见过此文,请不要误会~~ 2.本着尊重原创,大家转载的时候请注明出处,此教程编写不易啊~~ 3.由于我 ...

  3. c++计算两个三维向量之间的夹角

    计算p1p0与p2p0之间的夹角,结果返回 0 至 π 之间的计算结果,单位为弧度,在函数库中角度均以弧度来表示 //计算角度Pnt3 p1p0 = p1p2[0].Co3d() - p0.Co3d( ...

  4. 根据经纬度计算地球距离-Numpy向量版

    输入两个numpy数组,shape都是(n,2),每一行代表一个点,例如: latlon1 = array([[ 22.7373478, 113.8013962],[ 22.6623782, 113. ...

  5. C#计算 求两个向量的夹角

    方法1 通过两个向量的法向量的点乘的反余弦获取弧度,然后通过弧度获取角度 Mathf.Acos(Vector3.Dot(a.normal,b.normal))* Mathf.Rad2Deg 方法2 通 ...

  6. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1108:向量点积计算

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 6036 通过数: 4909 [题目描述] 在线性代数.计算几何中,向量点积是一种十分重要的运算. 给定两个n维向量a=(a1,a2 ...

  7. 信息学奥赛一本通(1108:向量点积计算)

    1108:向量点积计算 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 22720     通过数: 17933 [题目描述] 在线性代数.计算几何中,向量点积是一 ...

  8. AC日记——向量点积计算 openjudge 1.6 09

    09:向量点积计算 总时间限制:  1000ms 内存限制:  65536kB 描述 在线性代数.计算几何中,向量点积是一种十分重要的运算. 给定两个n维向量a=(a1,a2,...,an)和b=(b ...

  9. 向量法计算空间点到线段的距离(python)

    中学数学告诉我们,计算点到线段的距离有两种. 我们假设点是P,线段是AB.P和AB都由三维的笛卡尔坐标表示.现计算P到AB的距离. 第一种是,过点P向线段AB上画垂线,判断垂足有没有落在线段上.如果落 ...

最新文章

  1. 数据结构与算法:03 C#面向对象设计 I
  2. Java集合(一)、什么是Java集合?
  3. tcp断开连接的几种状态
  4. IEEE802.11e EDCA 中TXOP机制的分析与改进
  5. mui html5电子签名,关于H5电子签名的实现。
  6. Android 不显示标题栏和全屏的设置方法
  7. java 简单类继承
  8. html语言中表格由什么组成,html表格基本结构是什么?html表格的完整代码详解
  9. 地推不同HTTP协议解决的问题
  10. 用python建立socket,用python建立socket服务器
  11. 【笔试/面试】SQL 经典面试题
  12. 计算机二级c语言的书籍,全国计算机二级c语言
  13. 移动安全--52--我设计的Java代码混淆解决方案
  14. FFmpeg进阶:给视频添加文字水印
  15. 【老骥伏枥-原创】DIY在VMware上安装万由U-NAS系统的初体验
  16. 北京林业大学matlab公选课,北京林业大学教务处
  17. 现代大学英语精读第二版(第四册)学习笔记(原文及全文翻译)——3A - Groundless Beliefs(无根据的信念)
  18. 祝cattom考研成功
  19. 【Kata Daily 190927】Counting sheep...(数绵羊)
  20. 单例模式-基类单例。。用于其他单例的派生

热门文章

  1. TTL电平,CMOS电平,OC门,OD门基础知识
  2. 作为一个菜鸟程序员跳槽可行吗?
  3. 无法加载播放器,请删除浏览器缓存后重试
  4. 蒙牛为什么这么猛?---《蒙牛内幕》读书笔记
  5. CCP协议学习《一》
  6. 00002__C++矢量图形库
  7. 以B站推流为例,运用ffmpeg推流的各种操作-3_# 安装ffmpeg Ubuntu云服务器用ffmpeg推送视频篇
  8. 怎么样开启小米手机5s Plus的Root超级权限
  9. excel操作技巧:聊聊关于打印的一些事儿
  10. 泽水困:遇河搭桥;水风井:德泽万物