UNITY3D中涉及的一些数学知识

简介: 3D中的法线是什么意思啊~ 在空间垂直于一个平面的直线;或者在一个平面里面,垂直于一条直线的直线.法线也可以指的某个方向.对于圆弧来讲,指的是它与圆心相连的直线(方向).法线:英语叫Normal Line.

3D中的法线是什么意思啊~

在空间垂直于一个平面的直线;或者在一个平面里面,垂直于一条直线的直线.法线也可以指的某个方向.对于圆弧来讲,指的是它与圆心相连的直线(方向).
法线:英语叫Normal Line.

 

就是一条垂直线,我们可以这样联想着记:

法 = 法律,法规,正直 = 垂直

 

 

学习quaternion的一点点笔记

 

http://blog.csdn.net/soilwork/article/details/1447346

 

 

        3D程序中,通常用quaternion来计算3D物体的旋转角度,与Matrix相比,quaternion更加高效,占用的储存空间更小,此外也更便于插值。在数学上,quaternion表示复数w+xi+yj+zk,其中i,j,k都是虚数单位:

 

 

 

i*i = j*j = k*k= -1

 

i*j = k, j*i = -k

 

 

 

可以把quaternion看做一个标量和一个3D向量的组合。实部w表示标量,虚部表示向量标记为V,或三个单独的分量(x,y,z)。所以quaternion可以记为[ w, V][ w,(x,y,x]。对quaternion最大的误解在于认为w表示旋转角度,V表示旋转轴。正确的理解应该是w与旋转角度有关,v与旋转轴有关。例如,要表示以向量N为轴,轴旋α度,相对的quaternion应该是:

 

 

 

 

 

q = [ cos(α/ 2) , sin(α/ 2) N]

 

  =[ cos(α/ 2) , ( sina(α/ 2) Nx, sin(α/ 2)Ny, sin(α/ 2)Nz ) ]

 

 

 

 

 

为了计算方便,一般要求N为单位矢量。对quaternion来说使用四个值就能记录旋转,而不是Matrix所需的十六个值。为什么用quaternion来计算旋转很方便呢?先说过quaternion是一个复数,如果你还记得一点点复数的知识,那么应该知道复数乘法(叉乘)的几何意义实际上就是对复数进行旋转。对最简单的复数p= x + yi来说,和另一个复数q = ( conα,sinα)相乘,则表示把p沿逆时针方向旋转α:

 

 

 

 

 

p’ = pq

 

 

 

 

 

 

 

 

 

当然,x+yi的形式只能表示2D变换,对3D变换来说就需要使用 quaternion了,而且计算也要复杂一点。为了对3D空间中的一个点px,y,z)进行旋转,需要先把它转换为quaternion形式p = [0, ( x, y, z)],接下来前面讨论的内容,定义q = cos(α/ 2) , sin(α/ 2) N为旋转quaternion,这里N为单位矢量长度的旋转轴,α为旋转角度。那么旋转之后的点p’则为:

 

 

 

 

 

      p’ = qpq-1

 

 

 

ps:粗体字母表示矢量 

 

相关文章
|
机器学习/深度学习 并行计算 PyTorch
安装GPU版本tensorflow、pytorch
安装GPU版本tensorflow、pytorch
安装GPU版本tensorflow、pytorch
|
Shell 开发工具 数据安全/隐私保护
idea上传项目到gitee(码云)超详细
idea上传项目到gitee(码云)超详细
idea上传项目到gitee(码云)超详细
|
9月前
|
人工智能 弹性计算 自然语言处理
《AI剧本生成与动画创作》解决方案深度测评报告
该解决方案基于阿里云函数计算(FC)和百炼大模型平台,结合图像生成模型与语音合成技术,实现从剧本生成到动画渲染的自动化流程。核心步骤包括剧本生成、分镜设计和动画渲染,支持模块化扩展和低成本弹性伸缩。部署耗时约80分钟,首次部署需下载大模型文件。优势在于高效生成动画、低成本试错和丰富的动态效果,但也存在剧本逻辑跳跃、画面细节瑕疵等问题。综合评分为4/5,适用于短视频营销等场景。
|
容器
echarts的grid——图表的位置配置
echarts的grid——图表的位置配置
2302 1
|
Ubuntu 机器人 开发工具
【2. 在Github上寻找安装ROS软件包】
【2. 在Github上寻找安装ROS软件包】
761 0
|
设计模式 开发框架 Java
学习Spring框架这一篇就够了1
学习Spring框架这一篇就够了
学习Spring框架这一篇就够了1
|
前端开发
react18+react-router-dom+v6 +路由鉴权
最新的react18 react-router-dom v6版本 的路由鉴权,基于vite启动的项目
1364 0
|
Java 数据库连接 数据库
XMPP 之Openfire的用户数据库整合
openfire\documentation下的文档有比较详细的信息 如果手动一步步设置 删除默认, 首先停止正常运行的Openfire服务器 默认的库ofProperty的如下记录删除 provider.
974 0