如图M为镜面,A为入射光,B为反射光,已知A与M的向量坐标,求B的向量表示。

我们添加辅助向量C。

有以下性质。

B = 2 * C - A. 【1】

|C| = |A| * cos(alpah).
A * M = |A| * |M| * cos(alpha).

故|C| = (A * M) / |M|. (假设M与A夹角小于90度,大于等于90度结果相同,可自行推导)
C = |C| * (M的单位向量) = |C| * (M / |M|). 【2】

由【1】【2】,得出 B = 2 * C - A
    = (2 * (A 内积 M) / M模平方) * M - A.

A内积M: A.x * M.x + A.y * M.y
M模平方:M.x * M.x + M.y * M.y

基础向量运算-2D镜面反射的更多相关文章

  1. Unity 三角函数 向量 运算

    其实三维的和二维的基本差不多,一样的运算方式,unity已经把所有的方法都封装起来,主要是理解,能理解了就直接调用了 三角函数 知识点:三角函数基础正玄余玄.三角函数曲线.弧度制和角度制.弧度制和角度 ...

  2. UVa 11437:Triangle Fun(计算几何综合应用,求直线交点,向量运算,求三角形面积)

    Problem ATriangle Fun Input: Standard Input Output: Standard Output In the picture below you can see ...

  3. 【转载】DSP基础--定点小数运算

    在FPGA实现算法过程中,大多数情况是用占用资源较少,延迟较低的定点数代替浮点数参与运算.那么浮点与定点数之间的区别以及转换方式是怎么的?下边这篇博文详细说明了这一问题.虽然是针对DSP芯片的,但思想 ...

  4. 向量运算 与 JavaScript

    二维向量都包含两个值:方向(direction)及大小(magnitude)   这两个值可以表达出各种各样的物理特性来,比如力和运动.如两个物体间的碰撞检测.   向量的大小   虽说二维向量是对大 ...

  5. 3D数学读书笔记——向量运算及在c++上的实现

     本系列文章由birdlove1987编写.转载请注明出处.     文章链接: http://blog.csdn.net/zhurui_idea/article/details/24782661   ...

  6. 向量运算(lua,三维) 点乘、叉乘、模、夹角

    向量运算在游戏制作中经常用到,稍微总结一下. 一.点乘 如图,假设   向量a与b的点乘表示a在b上的投影与b的模的乘积 公式: 代码: function MathHelper.GetVector3D ...

  7. Eigen中的矩阵及向量运算

    Eigen中的矩阵及向量运算 ,[+,+=,-,-=] ,[\*,\*=] ,[.transpose()] ,[.dot(),.cross(),.adjoint()] ,针对矩阵元素进行的操作[.su ...

  8. Unity - 求反射向量 (2d)

    求反射向量 https://www.cnblogs.com/graphics/archive/2013/02/21/2920627.html 上面是大佬的公式可以去看一下 借的大佬的图 1.求入射向量 ...

  9. 快速电路仿真器(FastSPICE)中的高性能矩阵向量运算实现

    今年10-11月份参加了EDA2020(第二届)集成电路EDA设计精英挑战赛,通过了初赛,并参加了总决赛,最后拿了一个三等奖,虽然成绩不是很好,但是想把自己做的分享一下,我所做的题目是概伦电子出的F题 ...

随机推荐

  1. Simple JavaScript Inheritance--一个极简JS面向对象-类库

    面向对象 面向对象思想的几个重要特征(针对类的要求): 抽象-封装.信息隐藏(将内部实现的方法和数据隐藏, 定义开放的接口) 继承-子类可以使用父类的资源,并可以定制自己的资源, 资源包括方法和数据 ...

  2. dubbo源码分析1-reference bean创建

    dubbo源码分析1-reference bean创建 dubbo源码分析2-reference bean发起服务方法调用 dubbo源码分析3-service bean的创建与发布 dubbo源码分 ...

  3. 小Q系列之 最佳裁判

    这个题需要注意一些数据条件 尤其是一些输入数据条件 #include<algorithm> #include<stdio.h> #include<math.h> u ...

  4. Win7常规快捷键

    Win7常规快捷键: Win+1:打开/显示超级任务栏第一个图标代表的程序 Win+2:打开/显示超级任务栏第二个图标代表的程序(3.4.--如此类推) Win+D:切换桌面显示窗口或者gadgets ...

  5. 怎么理解Android版本兼容???

    程序中设置了minSdkVersion和targetSdkVersion如下: <uses-sdk android:minSdkVersion="8" android:tar ...

  6. 使用AppCan实现分享网站功能

    使用AppCan实现分享网站功能 昨天我们实现了最基本的文字分享功能,今天呢,我们来实现基本的分享网站功能: 微信指引部分这里不再复述,具体请参见:http://newdocx.appcan.cn/i ...

  7. visual studio code + Nodejs + Typescritpt + angularjs2 + bootstrap 环境搭建/Elementary os

    1.apt-get update 99% waiting for headers卡住了,fix如下 sudo apt-get clean cd /var/lib/apt sudo mv lists l ...

  8. 为什么要加 -moz- -webkit- -ms- -o- ?

    没有别的,为了兼容早期版本,为了解决CSS3标准正式发布以前的遗留问题.

  9. django重量级web框架

    一个WEB项目要解决什么问题? 1. 基本核心功能,即将请求的request通过调用本地程序进行计算,数据库查询,返回数据,生成按照http协议生成新的数据返回给客户端,解析这些返回的数据就交由浏览器 ...

  10. JS中Float类型加减乘除 修复

    MXS&Vincene  ─╄OvЁ  &0000027─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好, ...