Unity中的点乘和叉乘

点乘很多资料上都是说表示两个向量的相似度,具体是怎么表示相似度,结果大小如何表示相似度,越大越相似,还是越差,如果细细去推导才发现很多东西以前的理解是有错误或者说是不清不楚的。
点乘的定义:
a·b=|a|·|b|cos<a,b> 【<a,b>表示向量a,b的夹角,取值范围为[0,180]】

根据上面的公式可以知道 a·b 可以看出结果是一个标量
点乘可以求出两个向量的夹角,但是点乘的结果不是两个向量的夹角。

假设上面的oa长度为1 ob长度为2 角度aoc为30°
a·b=12cos30≈1.732 这个几何意义无法用相似度或者夹角来表示的。
几何意义:是一条边向另一条边的投影乘以另一条边的长度.
表示向量的夹角的几何意义:
cos<a,b> =(a·b)/(|a|·|b|)

向量的叉乘
定义:c = a x b,其中a b c均为向量
可以看出向量叉乘得到的是一个向量,很多看过资料的都知道结果表示是垂直于两个向量组成面的方向那么有两个问题需要进一步的解答。
问题1:在Unity中垂直方向有两个的,比如垂直于地面是朝上的也可以朝下的,具体朝哪个方向。
问题2:在Unity中向量是有大小和方向的,问题1 计算出了方向,那请问叉乘后向量的大小是多少。

两个向量 a b
a=(a1,a2,a3)
b=(b1,b2,b3)

i j k来表示三维坐标轴
a=(a1i,a2j,a3k)=a1i+a2j+a3k
b=(b1i,b2j,b3k)=b1i+b2j+b3k

已知
ii=0 jj=0 kk=0
i
j=k jk=i ki=j
ji=-k kj=-i i*k=-j

axb=(a1i+a2j+a3k)*(b1i+b2j+b3k)
根据上面推导可以得出结论
axb=(a2b3-a3b2)i+(a3b1-a1b3)j+(a1b2-a2b1)k
结果写成多项式

变换形式得到叉乘矩阵:


称为a向量的叉乘矩阵。

性质1:c⊥a,c⊥b,即向量c与向量a,b所在平面垂直
性质2:模长|c| = |a||b| sin<a,b>

方向上Unity为左手坐标系,最终的方向是根据向量a到向量b的旋转方向来定义的,建议代码实际体验

Unity中的点乘和叉乘相关推荐

  1. UNITY中利用点乘和叉乘判断方向 2D

    void DirectionJudge(){Vector3 dir = mousePositionInWorld - transform.position;dir.z = 0f;var magiDir ...

  2. 【游戏开发小技】Unity中实现Dota里的角色技能地面贴花效果(URP | ShaderGraph | Decal)

    本文最终效果 文章目录 一.前言 二.环境准备 1.URP环境准备 2.技能范围图案 二.方案一:写Shader实现 1.Shader脚本:UrpDecal.shader 2.材质球 3.创建Cube ...

  3. 【游戏开发小技】Unity中实现Dota里的角色技能地面贴花效果(URP ShaderGraph Decal)

    本文最终效果 文章目录 一.前言 二.环境准备 1.URP环境准备 2.技能范围图案 二.方案一:写Shader实现 1.Shader脚本:UrpDecal.shader 2.材质球 3.创建Cube ...

  4. unity中3D数学相关类、属性、方法、用途总结+超级综合的案例

    这篇内容将与unity中移动旋转的控制密切相关,有关移动旋转. 主要涉及到的类:Vector3,Mathf,Quaternion,Transform. 1.三角函数 其实关于三角函数的使用并不会很常见 ...

  5. 一种城市道路网络的随机生成方式(Unity中可视化)

    一种城市道路网络的随机生成方式(Unity中可视化) 1. 说在开头 2. 有限元网格划分 2.1. 什么是有限元 2.2. 前沿推进法/波前推进法(Advancing Front Technique ...

  6. Unity 中的坐标系

    参考 1.Shadow Map 原理和改进 2.[OpenGL]02 - OpenGL中的坐标系 3.矩阵理论 (这个是京东地址) 4.维基百科(文中的数学概念出处) 5.msdn mul 6.msd ...

  7. unity中实现镜子效果

    本文转载自http://blog.csdn.net/zhangxiao13627093203/article/details/52403186 上一篇介绍了有关镜子的制作,有关理论部分的内容我会在后续 ...

  8. 图形学中的抗锯齿讨论以及在unity中的应用

    抗锯齿(Anti-Aliasing)是图形学中,很重要的一个部分.本文旨在做一些分析总结,并对平时不理解的细节,做了调研,但毕竟不是做GPU行家,所以有不对的地方,欢迎拍砖^^. 1 什么是锯齿 下图 ...

  9. 学习在Unity中创建一个动作RPG游戏

    游戏开发变得简单.使用Unity学习C#并创建您自己的动作角色扮演游戏! 你会学到什么 学习C#,一种现代通用的编程语言. 了解Unity中2D发展的能力. 发展强大的和可移植的解决问题的技能. 了解 ...

最新文章

  1. python打印空心平行四边形的面积公式_打印等腰三角形和空心平行四边形
  2. 不只是用于研究:使用Nvivo获取各种定性数据
  3. 一个ABAP程序,能够下载指定的note到本地
  4. Python 3实现k-邻近算法以及 iris 数据集分类应用
  5. 【Python】表白程序
  6. PHP 中 this,self,parent 的区别、用法
  7. 张一鸣的大学四年收获及工作感悟
  8. TDR/TDT测量原理分析
  9. matlab 关于interpreter的使用
  10. SparkStreaming的背压机制
  11. python pool_Python pool.Pool方法代码示例
  12. 技术分享 | 使用 Zabbix + Grafana 搭建服务器监控系统
  13. 蓝桥2——Beaver's Calculator
  14. jmu-python-生日悖论(熟练掌握随机数的生成以及检查重复)
  15. Android系统解除USER版本无法进入Recovery模式限制
  16. Office 365身份认证--深度解析(二)
  17. 如何drop有default constrain…
  18. 时隔3年,再次折腾BlackBerry 8830!
  19. 关于AIOT简易理解.
  20. 如何用java做一个桌面游戏

热门文章

  1. 经济学跨考深大计算机,【经院·青春榜样】乘风破浪的毕业生们(9)|跨考深大这一程...
  2. android apk瘦身方法
  3. eslint忽略某一行、某一段代码校验
  4. 今天是程序员节,明天就是求爱日啦!
  5. el-form自定义规则rules——validate的使用 小红心不出现解决方案
  6. 企业处理不好这3种快递问题,营收肯定提不上来
  7. 跑腿app要有哪些功能呢?
  8. 喜报!星舆科技再次斩获智能网联汽车行业大奖
  9. 2021-2027全球与中国C型USB充电器市场现状及未来发展趋势
  10. 销售员如何巧妙地提问了解客户真实需求