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

改成 响应式 网站怎么用linux做网站服务器

改成 响应式 网站,怎么用linux做网站服务器,网站海外推广服务,wordpress 主题 广告Unity矩阵平移旋转缩放Matrix4x4 Unity中的矩阵#xff08;Matrix4x4#xff09;创建自定义模型平移矩阵缩放矩阵旋转矩阵 Unity中的矩阵#xff08;Matrix4x4#xff09; 最近在研究帧同步定点数物理系统中需要自定义定点数矩阵#xff0c;所以在这里分享下基础的矩阵案… Unity矩阵平移旋转缩放Matrix4x4 Unity中的矩阵Matrix4x4创建自定义模型平移矩阵缩放矩阵旋转矩阵 Unity中的矩阵Matrix4x4 最近在研究帧同步定点数物理系统中需要自定义定点数矩阵所以在这里分享下基础的矩阵案例旋转、平移、缩放。注意这里本文中的transform组件式基于unity浮点数的教程并非帧同步定点数参考原文 创建自定义模型 参数可以参考我上图的参数这里注意三个顶点是一个面这里我上述的模型是一个三角形的面。 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Triangle : MonoBehaviour {/// summary/// 网格/// /summaryMesh mesh;/// summary/// 三角形顶点/// /summarypublic Vector3[] vertices;/// summary/// 分配三角形顶点索引/// /summarypublic int[] triangle;/// summary/// 材质球/// /summarypublic Material mat;private void Start(){//实例化网格mesh new Mesh();//分配顶点mesh.vertices vertices;//分配三角形顶点索引mesh.triangles triangle;//添加网格过滤器MeshFilter mf gameObject.AddComponentMeshFilter();//网格赋值mf.mesh mesh;//添加网格渲染器MeshRenderer mr gameObject.AddComponentMeshRenderer();//材质赋值mr.materials[0] mat;} }创建模型很简单我就不细讲了看不懂的可以看上述的注释即可直接黏贴也可。 平移矩阵 要做位移先搞明白矩阵中的哪几个索引值代表的坐标位置如下图所示4x4矩阵 上图TxTyTz为平邑的方向向量 这里可以自己做个测试将transform的初始位置修改如下所示 代码如下 using System.Collections; using System.Collections.Generic; using UnityEngine;public class MyTransform : MonoBehaviour {public Matrix4x4 matrix;// Start is called before the first frame updatevoid Start(){matrix.SetTRS(transform.position,transform.rotation,transform.localScale);}// Update is called once per framevoid Update(){if (Input.GetKeyDown(KeyCode.Q)) {MyTranslate(new Vector3 (Random.Range(-5,5),Random.Range(-5,5), Random.Range(-5, 5)));}}public Vector4 v;/// summary/// 平移矩阵对象/// /summary/// param namepos/parampublic void MyTranslate(Vector3 pos) {//按照当前位置进行位移//v new Vector4(transform.position.x,transform.position.y,transform.position.z,1);//按照原点进行位移v new Vector4(0, 0, 0, 1);matrix Matrix4x4.identity;//X、Y、Z移动因子matrix.m03 pos.x;matrix.m13 pos.y;matrix.m23 pos.z;//矩阵位移操作v matrix * v;transform.position new Vector3(v.x, v.y, v.z);} } 缩放矩阵 这个就是缩放矩阵其中“Sx”、“Sy”、“Sz”就是各个轴上的缩放因子。缩放矩阵是矩阵表现物体大小变换的矩阵。如果缩放因子小于1表现为物体缩小如果大于1则表现为物体扩大如果等于1则不发生变化。 测试的话可以根据平移矩阵的测试方式修改scale来查看矩阵点对应值得变化 修改代码如下 using System.Collections; using System.Collections.Generic; using UnityEngine;public class MyTransform : MonoBehaviour {public Matrix4x4 matrix;// Start is called before the first frame updatevoid Start(){matrix.SetTRS(transform.position,transform.rotation,transform.localScale);}// Update is called once per framevoid Update(){if (Input.GetKeyDown(KeyCode.Q)) {MyTranslate(new Vector3 (Random.Range(-5,5),Random.Range(-5,5), Random.Range(-5, 5)));}if (Input.GetKeyDown(KeyCode.W)) {int scale Random.Range(-5,5);MyScale(new Vector3 (scale, scale, scale));}}public Vector4 v;/// summary/// 平移矩阵对象/// /summary/// param namepos/parampublic void MyTranslate(Vector3 pos) {//按照当前位置进行位移//v new Vector4(transform.position.x,transform.position.y,transform.position.z,1);//按照原点进行位移v new Vector4(0, 0, 0, 1);matrix Matrix4x4.identity;//X、Y、Z移动因子matrix.m03 pos.x;matrix.m13 pos.y;matrix.m23 pos.z;//矩阵位移操作v matrix * v;transform.position new Vector3(v.x, v.y, v.z);}/// summary/// 缩放矩阵对象/// /summary/// param namescale/parampublic void MyScale(Vector3 scale) {//设置当前对象大小//v new Vector4(transform.localScale.x, transform.localScale.y, transform.localScale.z, 1);//按照原点进行位移v new Vector4(1, 1, 1, 1);matrix Matrix4x4.identity;//X、Y、Z缩放因子matrix.m00 scale.x;matrix.m11 scale.y;matrix.m22 scale.z;//矩阵缩放操作v matrix * v;transform.localScale new Vector3(v.x, v.y, v.z);} } 旋转矩阵 测试的话可以根据平移矩阵的测试方式修改Rotation来查看矩阵点对应值得变化 修改代码如下 using System.Collections; using System.Collections.Generic; using UnityEngine;public class MyTransform : MonoBehaviour {public Matrix4x4 matrix;// Start is called before the first frame updatevoid Start(){matrix.SetTRS(transform.position,transform.rotation,transform.localScale);}// Update is called once per framevoid Update(){if (Input.GetKeyDown(KeyCode.Q)) {MyTranslate(new Vector3 (Random.Range(-5,5),Random.Range(-5,5), Random.Range(-5, 5)));}if (Input.GetKeyDown(KeyCode.W)) {int scale Random.Range(-5,5);MyScale(new Vector3 (scale, scale, scale));}if (Input.GetKeyDown(KeyCode.A)) {MyRotation( Axle.X,10f);}if (Input.GetKeyDown(KeyCode.S)){MyRotation(Axle.Y, 10f);}if (Input.GetKeyDown(KeyCode.D)){MyRotation(Axle.Z, 10f);}}public Vector4 v;/// summary/// 平移矩阵对象/// /summary/// param namepos/parampublic void MyTranslate(Vector3 pos) {//按照当前位置进行位移//v new Vector4(transform.position.x,transform.position.y,transform.position.z,1);//按照原点进行位移v new Vector4(0, 0, 0, 1);matrix Matrix4x4.identity;//X、Y、Z移动因子matrix.m03 pos.x;matrix.m13 pos.y;matrix.m23 pos.z;//矩阵位移操作v matrix * v;transform.position new Vector3(v.x, v.y, v.z);}/// summary/// 缩放矩阵对象/// /summary/// param namescale/parampublic void MyScale(Vector3 scale) {//设置当前对象大小//v new Vector4(transform.localScale.x, transform.localScale.y, transform.localScale.z, 1);//按照原点进行位移v new Vector4(1, 1, 1, 1);matrix Matrix4x4.identity;//X、Y、Z缩放因子matrix.m00 scale.x;matrix.m11 scale.y;matrix.m22 scale.z;//矩阵缩放操作v matrix * v;transform.localScale new Vector3(v.x, v.y, v.z);}public enum Axle { X, Y, Z}public void MyRotation(Axle axle,float angle) {matrix Matrix4x4.identity;//对应 X、Y、Z的旋转switch (axle){case Axle.X:matrix.m11 Mathf.Cos(angle * Mathf.Deg2Rad);matrix.m12 -Mathf.Sin(angle * Mathf.Deg2Rad);matrix.m21 Mathf.Sin(angle * Mathf.Deg2Rad);matrix.m22 Mathf.Cos(angle * Mathf.Deg2Rad);break;case Axle.Y:matrix.m00 Mathf.Cos(angle * Mathf.Deg2Rad);matrix.m02 Mathf.Sin(angle * Mathf.Deg2Rad);matrix.m20 -Mathf.Sin(angle * Mathf.Deg2Rad);matrix.m22 Mathf.Cos(angle * Mathf.Deg2Rad);break;case Axle.Z:matrix.m00 Mathf.Cos(angle * Mathf.Deg2Rad);matrix.m01 -Mathf.Sin(angle * Mathf.Deg2Rad);matrix.m10 Mathf.Sin(angle * Mathf.Deg2Rad);matrix.m11 Mathf.Cos(angle * Mathf.Deg2Rad);break;default:break;}float qw Mathf.Sqrt(1f matrix.m00 matrix.m11 matrix.m22) / 2;float w 4 * qw;float qx (matrix.m21 - matrix.m12) / w;float qy (matrix.m02 - matrix.m20) / w;float qz (matrix.m10 - matrix.m01) / w;transform.rotation new Quaternion(qx, qy, qz, qw);}} 原文中有对应的小工具可以参考
http://www.pierceye.com/news/524529/

相关文章:

  • 做网站要用编程吗学做宝宝衣服的网站
  • 网站建设有哪些方法怎么在百度上注册店铺
  • 网站获取访问者qqwordpress网站布置视频
  • 南宁怎么做seo团队网站排名优化培训电话
  • 做百科权威网站有哪些开发网站访问流量赚钱
  • 网站建设论坛快速建站可以做网站的路由器
  • 网站首页没排名但内页有排名建设网站招标
  • 网站公司做网站修改会收费吗设计logo网站免费无水印
  • 东营市做网站优化视频拍摄剪辑培训
  • 南通百度网站快速优化运城小程序开发公司
  • 做一个综合商城网站多少钱网站建设运营必备人员
  • 聊城做wap网站公司手机网站设计教育类模板
  • 深圳做网站的人做微信投票的网站5
  • 靖安建设局网站WordPress使用云数据库
  • h5制作哪个网站好济南php网站开发
  • 深圳网站建设类公司最大的网站开发公司
  • ps做图游戏下载网站有哪些内容百度ip地址
  • 网站到期续费吗网站首页缩略图 seo
  • 网站制作案例 立邦建立个人网站能赚钱吗
  • 重庆巨能建设集团网站网站seo置顶 乐云践新专家
  • 专业制作网站 上海黑糖 wordpress 主题
  • 数据库网站开发卡片风格网站
  • 信息发布平台建站网站服务器天付
  • 免费做网站方法北京公司排名seo
  • 网站备案登记表晋城市建设局 网站
  • 网站备案会检查空间运营策划
  • 关于做网站建筑人力网
  • 网站开发培训合肥企业解决方案工作组
  • 怎么看待网站开发做网站好赚钱
  • 网站开发工作方案建设网站用什么软件排版