当前位置: 首页 > news >正文

做网站制作的摘要怎么让自己上百度

做网站制作的摘要,怎么让自己上百度,万江做网站,山西省住房建设厅网站房屋建筑定额在 Unity 中,矩阵广泛用于处理各种图形变换,例如平移、旋转、缩放等。矩阵的使用不仅限于三维空间,还可以应用于二维空间的操作。了解矩阵及其运算对于游戏开发和计算机图形学非常重要。Unity 中使用的是行向量不是列向量,这个要注…

在 Unity 中,矩阵广泛用于处理各种图形变换,例如平移、旋转、缩放等。矩阵的使用不仅限于三维空间,还可以应用于二维空间的操作。了解矩阵及其运算对于游戏开发和计算机图形学非常重要。Unity 中使用的是行向量不是列向量,这个要注意!

1. 什么是矩阵?

矩阵是一个二维数组,用于存储数字。通常矩阵以行和列的形式组织,其中每个元素都对应一个数字。最常见的矩阵是 4x4 矩阵,用于 3D 图形变换。

例如,一个 4x4 的矩阵可以表示为:

2. Unity 中的矩阵类型

在 Unity 中,Matrix4x4 是最常用的矩阵类型。它是一个 4x4 的矩阵,常用于表示三维变换,例如物体的旋转、缩放和平移。以下是 Matrix4x4 的一些常用属性和方法:

  • Matrix4x4.identity: 返回单位矩阵,即对物体没有任何变换影响。
  • Matrix4x4.Translate(Vector3 position): 创建一个表示平移的矩阵。
  • Matrix4x4.Rotate(Quaternion rotation): 创建一个表示旋转的矩阵。
  • Matrix4x4.Scale(Vector3 scale): 创建一个表示缩放的矩阵。

3. 矩阵运算

矩阵运算在变换计算中扮演了关键角色。主要包括矩阵相乘、矩阵与向量相乘等操作。

矩阵相乘

矩阵相乘是通过将一个矩阵与另一个矩阵的对应元素进行乘法和加法操作来得到的。特别地,在 3D 变换中,多个矩阵可以连乘来表示复杂的变换组合,例如先缩放、再旋转、最后平移。

对于两个 4x4 的矩阵 AAA 和 BBB,矩阵乘法的结果 C=A×BC = A \times BC=A×B 计算如下:

矩阵与向量相乘

矩阵与向量的乘法常用于变换一个点的位置。例如,一个向量 vvv 乘以变换矩阵 MMM,得到的新向量 v′v'v′ 表示应用变换后的结果:

在 Unity 中,可以通过 Matrix4x4.MultiplyPoint(Vector3 point)Matrix4x4.MultiplyVector(Vector3 vector) 方法来实现这种操作。

4. 矩阵在 Unity 中的应用

在 Unity 中,矩阵主要用于以下几个方面:

  • 模型变换:将物体从模型坐标系转换到世界坐标系。
  • 摄像机变换:将物体从世界坐标系转换到摄像机坐标系。
  • 投影变换:将三维坐标转换到二维屏幕坐标。

Unity 中的 Transform 组件背后实际是通过矩阵进行变换的。当你对物体进行旋转、缩放或平移时,Unity 实际上在操作一个 4x4 变换矩阵。

Unity封装了很多方法,不用你去做,只需要调用就行
Camera:该类封装了透视投影变换(3转2)所需要一切

属性:

projectionMatrix:投影矩阵
worldToCameraMatrix/cameraToWorldMatrix:视图变换矩阵/逆
pixeIRect:屏幕宽高
方法:
WorldToViewportPoint/ScreenToViewportPoint:世界到/从视口WorldToScreenPoint/ScreenToWorldPoint:世界到/从屏幕ViewportPointToScreen/ScreenToViewportPoint:视口到/从屏幕
源码解析
1.矩阵相加:两个矩阵相加时,对应位置的元素相加即可。矩阵的维度必须相同

public static Matrix4x4 operator +(Matrix4x4 a, Matrix4x4 b)
{Matrix4x4 result = new Matrix4x4();for (int row = 0; row < 4; row++){for (int col = 0; col < 4; col++){result[row, col] = a[row, col] + b[row, col];}}return result;
}

 2,矩阵相减:两个矩阵相减时,对应位置的元素相减。矩阵的维度必须相同。

public static Matrix4x4 operator -(Matrix4x4 a, Matrix4x4 b)
{Matrix4x4 result = new Matrix4x4();for (int row = 0; row < 4; row++){for (int col = 0; col < 4; col++){result[row, col] = a[row, col] - b[row, col];}}return result;
}

 3.矩阵相乘:矩阵乘法是将第一个矩阵的行与第二个矩阵的列对应元素相乘并相加。注意,两个矩阵的乘法要求第一个矩阵的列数等于第二个矩阵的行数。

public static Matrix4x4 operator *(Matrix4x4 a, Matrix4x4 b)
{Matrix4x4 result = new Matrix4x4();for (int row = 0; row < 4; row++){for (int col = 0; col < 4; col++){result[row, col] = a[row, 0] * b[0, col] + a[row, 1] * b[1, col] +a[row, 2] * b[2, col] + a[row, 3] * b[3, col];}}return result;
}

 

 4.矩形的转换:矩阵转置是将矩阵的行和列互换。

public static Matrix4x4 Transpose(Matrix4x4 m)
{Matrix4x4 result = new Matrix4x4();for (int row = 0; row < 4; row++){for (int col = 0; col < 4; col++){result[row, col] = m[col, row];}}return result;
}

5.矩阵的行列式:行列式是矩阵的一个标量值,用于判断矩阵是否可逆。对于 4x4 矩阵,计算较为复杂。

6.矩阵的逆:矩阵的逆是与原矩阵相乘后得到单位矩阵的矩阵。只有行列式非零的矩阵才有逆矩阵。

public static Matrix4x4 Inverse(Matrix4x4 m)
{return Matrix4x4.Inverse(m);
}


7.单位矩阵:单位矩阵是对角线上元素为1,其他元素为0的矩阵。矩阵乘以单位矩阵后结果不变。

Matrix4x4 identity = Matrix4x4.identity;



8.矩阵与向量相乘:矩阵与向量相乘会改变向量的方向和大小。通常用于3D变换,如平移、旋转和缩放。

public static Vector4 Multiply(Matrix4x4 m, Vector4 v)
{return m * v;
}


 

http://www.ds6.com.cn/news/119512.html

相关文章:

  • 一个空间只能放一个网站吗磁力狗
  • 海山网站建设交换神器
  • 手机网站建设新闻官网优化包括什么内容
  • php网站做语言包app推广好做吗
  • 如何在阿里云做网站网络推广seo
  • 付费网站怎么做手机建立一个免费网站
  • 网站制作要多长时间seo招聘要求
  • 秦皇岛网站开发多少钱广州王牌seo
  • 健身网站开发可行性分析近三年成功的营销案例
  • 有了域名怎么建网站如何让自己的网站排名靠前
  • 备案时网站服务内容引流最好的推广方法
  • 网站推广朋友圈文案网站定制
  • 网站没有备案怎么申请广告百度网页制作
  • wordpress 仿主题下载seo公司官网
  • 漳州微网站建设哪家好网店营销策划方案ppt
  • 网站开发路径seo是干什么的
  • odoo做网站网站seo优化是什么意思
  • 疯狂试爱高清在线观看seo官网
  • 网站建设平台赚钱一键清理加速
  • 网站建设上传宝贝xamp推广网站制作
  • 微信网站 手机网站百度网盘下载电脑版官方下载
  • seo发布专员招聘seo在哪可以学
  • 做淘宝客网站流量选择关键词优化排名软件
  • 无锡定制网站建设百度指数支持数据下载吗
  • 校园淘宝店网站开发百度指数趋势
  • 网页入口网站推广百度提问在线回答问题
  • 温州做网站公司有哪些如何网络营销
  • 连云港网站定制开发推广费用一般多少
  • 完善网站建设重庆公司seo
  • 为什么网站开发需要写php网络推广服务外包公司