Web3D数学基础(平移、旋转、缩放矩阵)—WebGL、WebGPU、Threejs

这篇具有很好参考价值的文章主要介绍了Web3D数学基础(平移、旋转、缩放矩阵)—WebGL、WebGPU、Threejs。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考资料:threejs中文网

threejs qq交流群:814702116

Web3D数学基础(平移、旋转、缩放矩阵)—WebGL、WebGPU、Threejs

本下节课给大家介绍下矩阵的概念,以及用于几何变换的矩阵,比如平移矩阵、缩放矩阵、旋转矩阵。

如果你对这些几何变换的矩阵概念比较熟悉,可以跳过本节课。

线性代数、图形学

如果你有《线性代数》、《计算机图形学》基础,更有利于WebGPU的学习。当然了,你没有这些基础,也没关系,咱们课程的特色就是尽量弱化对数学和图形学基础的要求,尽量带你从零入门。

如果你时间比较充足,也有兴趣,可以去翻翻《线性代数》、《计算机图形学》相关的书籍,当然你不去翻,咱们的课程你也能学习。

如果你数学基础不好,工作也不用封装3D引擎或数学库,可以不用学习《线性代数》,直接用下节课介绍的一个数学库即可。

本节课针对学员

  • 大学学过线性代数的矩阵,但是并不了解用于平移、旋转、缩放的矩阵
  • 没学过线性代数,数学停留在高中水平

矩阵、矩阵运算规则

矩阵是图形学中一个比较重要的数学工具。

m×n矩阵表示m行n列的矩阵。

Web3D数学基础(平移、旋转、缩放矩阵)—WebGL、WebGPU、Threejs,矩阵,webgl,Three.js,Threejs,webgpu

矩阵乘法运算规则

Web3D数学基础(平移、旋转、缩放矩阵)—WebGL、WebGPU、Threejs,矩阵,webgl,Three.js,Threejs,webgpu

平移矩阵

下面咱们不会严格逻辑推导数学公式,用不严谨的小白方式,给大家介绍下平移矩阵。

一个点的坐标是(x,y,z),假设沿着X、Y、Z轴分别平移Tx、Ty、Tz,毫无疑问平移后的坐标是(x+Tx,y+Ty,z+Tz)。

坐标是(x,y,z)转化为齐次坐标坐标是(x,y,z,1),可以用4x1矩阵表示,这种特殊形式,也可以称为列向量,在webgpu顶点着色器代码中也可以用四维向量vec4表示。

请用矩阵的乘法运算法则验证下面矩阵的等式是否成立?

Web3D数学基础(平移、旋转、缩放矩阵)—WebGL、WebGPU、Threejs,矩阵,webgl,Three.js,Threejs,webgpu

缩放矩阵

通过缩放矩阵可以对顶点的齐次坐标进行缩放。

Web3D数学基础(平移、旋转、缩放矩阵)—WebGL、WebGPU、Threejs,矩阵,webgl,Three.js,Threejs,webgpu

旋转矩阵

假设一个点的坐标是(x,y,z),经过旋转变换后的坐标为(X,Y,Z)

绕Z轴旋转γ角度,z的坐标不变不变,x、y的坐标发生变化,如果你有兴趣,可以用你高中的三角函数知识推理,可以知道旋转后的坐标:X=xcosγ-ysinγ,Y=xsinγ+ycosγ

Web3D数学基础(平移、旋转、缩放矩阵)—WebGL、WebGPU、Threejs,矩阵,webgl,Three.js,Threejs,webgpu

三角函数计算推理过程

// 假设旋转前角度A,对应x和y的值
x = R * cos(A)
y = R * sin(A)

// 假设旋转了γ度,对应X和Y的值
X = R * cos(γ+A)
  = R * (cos(γ)cos(A)-sin(γ)sin(A))
  = R*cos(A)cos(γ) - R*sin(A)sin(γ)
  = xcosγ-ysinγ

Y = R * sin(γ+A)
  = R * (sin(γ)cos(A)+cos(γ)sin(A))
  = R*cos(A)sin(γ) + R*sin(A)cos(γ)
  = xsinγ+ycosγ

Web3D数学基础(平移、旋转、缩放矩阵)—WebGL、WebGPU、Threejs,矩阵,webgl,Three.js,Threejs,webgpu

旋转后的坐标:X=xcosγ-ysinγ,Y=xsinγ+ycosγ

绕X轴旋转α角度

x的坐标不变,y、z的坐标发生变化,Y=ycosα-zsinα,Z=ysinα+zcosα

Web3D数学基础(平移、旋转、缩放矩阵)—WebGL、WebGPU、Threejs,矩阵,webgl,Three.js,Threejs,webgpu

绕Y轴旋转β角度

y的坐标不变,z、x的坐标发生变化,Z=zsinβ+xcosβ,X=zcosβ-xsinβ

Web3D数学基础(平移、旋转、缩放矩阵)—WebGL、WebGPU、Threejs,矩阵,webgl,Three.js,Threejs,webgpu文章来源地址https://www.toymoban.com/news/detail-769396.html

到了这里,关于Web3D数学基础(平移、旋转、缩放矩阵)—WebGL、WebGPU、Threejs的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 17个WebGL框架及Web3D图形库

    WebGL是基于OpenGL的JavaScript API库,允许Web浏览器在浏览器中渲染3D / 2D图形,而无需安装额外的插件、桌面应用程序。WebGL允许通过浏览器使用机器GPU将3D图形渲染成HTML页面。WebGL目前在大多数浏览器(如Google Chrome,Mozilla Firefox和Safari)中都受支持。WebGL可以通过浏览器设置或使用

    2024年02月06日
    浏览(63)
  • 纯干货!最全WebGL框架及Web3D图形库

    WebGL 是一个 JavaScript API,用于在 Web 浏览器中呈现交互式 2D 和 3D 图形。它基于 OpenGL ES,这是一种广泛使用的嵌入式系统图形渲染标准。 WebGL 通常用于各种应用程序,包括: 3D 图形: WebGL 允许开发人员在 Web 浏览器中创建和显示 3D 图形,从而实现沉浸式体验、游戏、模拟和

    2024年02月21日
    浏览(56)
  • 智慧大棚Web3D可视化系统 构建高效农业场景

    农业的发展离不开农作物的生长,而农作物的生长会受到多方面的限制,主要是外界因素,因此,智慧农业便将传统农业与科技结合起来,衍生出智慧大棚,从而让农业得以快速发展。 我国农业的基本现状是“大国小农”,农业产业发展仍然受限于农业从业人员匮乏、年龄老

    2023年04月19日
    浏览(85)
  • threejs项目 :GLTF格式简介 (Web3D领域JPG)

    参考资料:threejs中文网 threejs qq交流群:814702116 本节课算是科普介绍,不用掌握具体的知识细节,大概有个印象即可。 gltf格式的重要性 GLTF格式是新2015发布的三维模型格式,随着物联网、WebGL、5G的进一步发展,会有越来越多的互联网项目Web端引入3D元素,你可以把GLTF格式的

    2024年01月24日
    浏览(49)
  • ThreeJS-VUE-3DMax 实现Web3D(简单测试)

            今天使用3DMax建模软件进行3D模型的制作,并且加入动画,通过threejs将模型及其动画部署在VUE框架上。         1. VUE:3.3.4         2. threejs:0.158.0         3. vite:4.4.11         4. 3DMax2021         5. pycharm2021专业版         简单制作一个小植物和一个水壶,实现浇

    2024年02月03日
    浏览(50)
  • 智慧垃圾焚烧发电厂Web3D可视化管理系统

    随着我国生产力的飞速发展和经济的迅速崛起,城市生活垃圾作为一种生物质能,将其燃烧用于发电,可以有效节约化石能源。 随着城镇化进程加速、人民生活水平持续提升,城市生活垃圾产生量也在逐年增长。生活垃圾是“放错地方的资源”,能否处理好这些“放错地方的资

    2024年02月08日
    浏览(57)
  • 50套Threejs实现的Web3D学习案例,总有一套适合你

    个人主页: 左本Web3D,更多案例预览请点击==》 在线案例 个人简介:专注Web3D使用ThreeJS实现3D效果技巧和学习案例 💕 💕积跬步以至千里,致敬每个爱学习的你。喜欢的话请三连,有问题请私信或者加微信 从18年开始,我由前后端开发开始专注Web3D开发,目前也已经快5年了

    2024年01月23日
    浏览(50)
  • 【SLAM数学基础】旋转的三种数学描述及其转换

    所有的三维旋转矩阵组成了特殊正交群(Special Orthogonal Group)SO(3),它是一个3x3的实数矩阵,满足: 旋转矩阵为正交矩阵: R ⋅ R T = I ,   R − 1 = R T ; Rcdot R^T = I,~ R^{-1} = R^T; R ⋅ R T = I ,   R − 1 = R T ; 旋转矩阵的行列式为1: det ⁡ ( R ) = 1 det(R)=1 det ( R ) = 1 . 同时,一个旋转矩

    2024年02月07日
    浏览(41)
  • 《3D 数学基础》12 几何图元

    目录 1. 直线、线段和射线 1.1 直线 1.2 射线 2. 球 3. AABB 4. 平面 5. 三角形 6. 多边形 经典定义  书中对射线定义做了修改:有向线段。  算法定义 p0是起始点,d是方向向量,单位向量。 自变量是t,可以很大超过1. p(0)=p0. p(2)=p0+2d; 算法实现  其中||p - c|| = r是球面公式,D=2r是直

    2024年02月13日
    浏览(38)
  • Unity基础1——3D数学

    ​ Math 是 C# 中封装好的用于数学计算的工具类 —— 位于 System 命名空间中 ​ Mathf 是 Unity 中封装好的用于数学计算的工具结构体 —— 位于 UnityEngine 命名空间中 ​ 他们都是提供来用于进行数学相关计算的 ​ Mathf 和 Math 中的相关方法几乎一样 ​ 但 Mathf 是 Unity 专门封装的,

    2024年02月10日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包