Three.js矩阵`Matrix4` 简介

这篇具有很好参考价值的文章主要介绍了Three.js矩阵`Matrix4` 简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考资料:threejs中文网

threejs qq交流群:814702116

Three.js矩阵Matrix4

前面两节课,给大家介绍了模型矩阵的数学基础理论,下面给大家介绍Three.js的一个矩阵相关类Matrix4(4x4矩阵),并用Matrix4创建平移矩阵、旋转矩阵、缩放矩阵。

查看4x4矩阵Matrix4文档,你可以看到很多相关矩阵相关的数学几何计算方法。

创建4x4矩阵Matrix4对象

// 创建一个4x4矩阵对象
const mat4 = new THREE.Matrix4()

属性.elements设置平移矩阵

applymatrix4,Three.js,Threejs

通过4x4矩阵Matrix4的属性.elements设置矩阵的值,比如设置一个平移矩阵。

.elements属性值是一个数组,数组的元素就是4x4矩阵的16个数字,数字在数组中按照矩阵列的顺序,一列一节输入数组中。

// 平移矩阵,沿着x轴平移50
// 1, 0, 0, x,
// 0, 1, 0, y,
// 0, 0, 1, z,
// 0, 0, 0, 1
const mat4 = new THREE.Matrix4()
mat4.elements=[1,0,0,0, 0,1,0,0, 0,0,1,0, 50, 0, 0, 1];

.elements属性不设置,默认是单位矩阵。

const mat4 = new THREE.Matrix4()
// 默认值单位矩阵
// 1, 0, 0, 0,
// 0, 1, 0, 0,
// 0, 0, 1, 0,
// 0, 0, 0, 1
console.log('.elements默认值', mat4.elements);

顶点坐标进行矩阵变换Vector3.applyMatrix4()

.applyMatrix4()是三维向量Vector3的一个方法,如果Vector3表示一个顶点xyz坐标,Vector3执行.applyMatrix4()方法意味着通过矩阵对顶点坐标进行矩阵变换,比如平移、旋转、缩放。

// 空间中p点坐标
const p = new THREE.Vector3(50,0,0);
// 矩阵对p点坐标进行平移变换
p.applyMatrix4(mat4);
console.log('查看平移后p点坐标',p);

applymatrix4,Three.js,Threejs

//用小球可视化p点位置
mesh.position.copy(p);

快速生成平移、旋转、缩放矩阵

使用threejs平移矩阵、旋转矩阵、缩放矩阵,可以不用自己直接设置.elements的值。threejs提供了一些更为简单的方法,辅助创建各种几何变换矩阵。

你可以分别测试下面方法,作为练习,去改变一个坐标点,并用小球可视化变换后的坐标位置。

  • 平移矩阵.makeTranslation(Tx,Ty,Tz)
  • 缩放矩阵.makeScale(Sx,Sy,Sz)
  • 绕x轴的旋转矩阵.makeRotationX(angleX)
  • 绕y轴的旋转矩阵.makeRotationY(angleY)
  • 绕z轴的旋转矩阵.makeRotationZ(angleZ)
const mat4 = new THREE.Matrix4();
// 生成平移矩阵(沿着x轴平移50)
mat4.makeTranslation(50,0,0);
// 结果和.elements=[1,0,0,0,...... 50, 0, 0, 1]一样
console.log('查看矩阵的值',mat4.elements);

平移矩阵案例

const mat4 = new THREE.Matrix4();
// 生成平移矩阵(沿着x轴平移50)
// mat4.makeTranslation(50,0,0);
console.log('查看矩阵的值',mat4.elements);

旋转矩阵案例文章来源地址https://www.toymoban.com/news/detail-857303.html

const mat4 = new THREE.Matrix4();
//生成绕z轴旋转90度的矩阵
mat4.makeRotationZ(Math.PI/2);

到了这里,关于Three.js矩阵`Matrix4` 简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Eigen 矩阵Matrix及其简单操作

    在Eigen,所有的矩阵和向量都是Matrix模板类的对象,Vector只是一种特殊的矩阵(一行或者一列)。 Matrix有6个模板参数,主要使用前三个参数,剩下的有默认值。 Scalar是表示元素的类型,RowsAtCompileTime为矩阵的行,ColsAtCompileTime为矩阵的列。 库中提供了一些类型便于使用,比如

    2024年02月12日
    浏览(35)
  • leetcode 542. 01 Matrix(01矩阵)

    矩阵中只有0,1值,返回每个cell到最近的0的距离。 思路: 0元素到它自己的距离是0, 只需考虑1到最近的0是多少距离。 BFS. 先把元素1处的距离更新为无穷大。 0的位置装入queue。 从每个0出发,走上下左右4个方向,遇到0不需要处理,遇到1,距离为当前距离+1. 如果当前距离

    2024年02月12日
    浏览(39)
  • 双目立体匹配中的极线约束(Epipolar Constraint),基础矩阵(Fundamental Matrix),本质矩阵(Essential Matrix),对极几何(2D-2D)

    考虑一个SLAM中一个常见的问题:如果两个相机在不同位置拍摄同一个物体,或者一个运动的相机在不同时刻拍摄同一物体,我们有理由相信两张图片中各点存在着某种几何关系,这种关系可以用对极几何来描述。对极几何描述了两帧图像中各像素的射影关系(或者说是各匹配

    2024年02月05日
    浏览(41)
  • 推荐算法之--矩阵分解(Matrix Factorization)

    在众多推荐算法或模型的发展演化脉络中,基于 矩阵分解 的推荐算法,处在了一个关键的位置: 向前承接了 协同率波 的主要思想,一定程度上提高了处理稀疏数据的能力和模型泛化能力,缓解了头部效应; 向后可以作为 Embedding 思想的一种简单实现,可以很方便、灵活地

    2023年04月13日
    浏览(46)
  • 线性代数 --- 置换矩阵 (Permutation matrix)

            对一个矩阵进行行交换,需要通过置换矩阵(permutation matrix)来完成。         在对一个Ax=b的方程组进行高斯消元的过程中,我们常常会遇到一种情况,也就是消元消不下去的情况。下面,我列出了两个不同的3x3矩阵的消元过程:         上图中的第一行,是一

    2024年02月06日
    浏览(43)
  • 导向矢量矩阵(steering vector matrix)

    在阵列信号处理中,导向矢量矩阵(steering vector matrix)是描述阵列接收信号和信号源之间关系的重要工具。它用于计算不同到达角度(Direction of Arrival,DOA)下的阵列响应。 导向矢量矩阵是一个矩阵,其每一列代表一个特定的到达角度,而每一行代表阵列中的一个阵元。假设

    2024年02月16日
    浏览(80)
  • 分类模型之混淆矩阵(Confusion Matrix)

    混淆矩阵是ROC曲线绘制的基础,同时它也是衡量分类型模型准确度中最基本,最直观,计算最简单的方法。 可以简单理解为:将一个分类模型的预测结果与正确结果做对比,将预测正确的统计量和预测错误的统计量分别写入一张矩阵图中,得到的这张图就是混淆矩阵了。 混

    2024年02月03日
    浏览(48)
  • 矩阵分解(Matrix-Factorization)无门槛

    本章主要介绍矩阵分解常用的三种方法,分别为: 1 ◯ textcircled{1} 1 ◯ 特征值分解 2 ◯ textcircled{2} 2 ◯ 奇异值分解 3 ◯ textcircled{3} 3 ◯ Funk-SVD 矩阵分解原理: textbf{large 矩阵分解原理:} 矩阵分解原理:   矩阵分解算法将 m × n mtimes n m × n 维的矩阵 R R R 分解为 m ×

    2024年01月19日
    浏览(55)
  • Android Matrix (三)矩阵组合和应用变换

    在 Android 开发中, Matrix 类不仅提供了 mapPoints 方法来变换点坐标,还提供了多种其他用法,使其成为处理图像和视图变换的强大工具。以下是 Matrix 类的一些关键用法: 1. 变换方法 setTranslate(float dx, float dy) : 设置矩阵为平移矩阵。 setScale(float sx, float sy, float px, float py) : 设置

    2024年02月02日
    浏览(37)
  • 「SymPy」符号运算(6) 矩阵Matrix及基础运算

    在前几篇文章中,我们学习了 SymPy 基础/高级用法、方程求解、微积分以及向量运算等内容,本节我们学习 SymPy 核心内容之一 Matrix 矩阵计算(基础)。 传送链接: 「SymPy」符号运算(1) 简介/符号/变量/函数/表达式/等式/不等式/运算符 「SymPy」符号运算(2) 各种形式输出、表达

    2024年02月14日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包