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

房地产销售好做吗郑州seo优化培训

房地产销售好做吗,郑州seo优化培训,网站口碑推广,重庆网站建设网领科技前言:依赖矩阵库 WebGL矩阵变换库_山楂树の的博客-CSDN博客 先平移,后旋转的模型变换: 1.将三角形沿着X轴平移一段距离。 2.在此基础上,旋转三角形。 先写下第1条(平移操作)中的坐标方程式。 等式1&am…

前言:依赖矩阵库 WebGL矩阵变换库_山楂树の的博客-CSDN博客 

先平移,后旋转的模型变换:

1.将三角形沿着X轴平移一段距离。

2.在此基础上,旋转三角形。

先写下第1条(平移操作)中的坐标方程式。

等式1:

< “平移” 后的坐标>  =  <平移矩阵> x <原始坐标>

然后对<平移后的坐标>进行旋转。

等式2:

< “平移后旋转” 后的坐标>  =  <旋转矩阵> x <平移后的坐标>

 当然你也可以分步计算这两个等式,但更好的方法是,将等式1代入到等式2中,把两个等式组合起来:

等式3:

< “平移后旋转” 后的坐标>  =  <旋转矩阵> x(<平移矩阵> x <原始坐标>)

这里:

 <旋转矩阵> x(<平移矩阵> x <原始坐标>)

等于(注意括号的位置):

(<旋转矩阵> x <平移矩阵>)x <原始坐标>

最后,我们可以在JavaScript中计算<旋转矩阵>×<平移矩阵>,然后将得到的矩阵传入顶点着色器。像这样,我们就可以把多个变换复合起来了。一个模型可能经过了多次变换,将这些变换全部复合成一个等效的变换,就得到了模型变换(model transformation),或称建模变换(modeling transformation),相应地,模型变换的矩阵称为模型矩阵(model matrix)。 

再来复习一下矩阵的乘法:

如上所示,将两个3×3矩阵A与B相乘的结果如下:

等式4:

 上式是两个3×3矩阵相乘的结果,实际用到的模型矩阵是4×4的矩阵。然而要注意,矩阵相乘的次序很重要,A*B的结果并不一定等于B*A。

下面就来看一下如何使用Matrix4对象进行矩阵乘法,从而将多个变换复合起来,实现先平移,然后旋转。

示例代码: 

var VSHADER_SOURCE ='attribute vec4 a_Position;\n' +'uniform mat4 u_ModelMatrix;\n' +'void main() {\n' +'  gl_Position = u_ModelMatrix * a_Position;\n' +'}\n';var FSHADER_SOURCE ='void main() {\n' +'  gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);\n' +'}\n';function main() {var canvas = document.getElementById('webgl');var gl = getWebGLContext(canvas);if (!gl) {console.log('Failed to get the rendering context for WebGL');return;}if (!initShaders(gl, VSHADER_SOURCE, FSHADER_SOURCE)) {console.log('Failed to intialize shaders.');return;}var n = initVertexBuffers(gl);if (n < 0) {console.log('Failed to set the positions of the vertices');return;}// 创建Matrix4对象以进行模型变换var modelMatrix = new Matrix4();// 计算模型矩阵var ANGLE = 60.0; // 旋转角var Tx = 0.5;     // 平移距离modelMatrix.setRotate(ANGLE, 0, 0, 1);  // 设置模型矩阵为旋转矩阵modelMatrix.translate(Tx, 0, 0);        // 将模型矩阵乘以平移矩阵// 将模型矩阵传输给顶点着色器var u_ModelMatrix = gl.getUniformLocation(gl.program, 'u_ModelMatrix');if (!u_ModelMatrix) {console.log('Failed to get the storage location of u_xformMatrix');return;}gl.uniformMatrix4fv(u_ModelMatrix, false, modelMatrix.elements);gl.clearColor(0, 0, 0, 1);gl.clear(gl.COLOR_BUFFER_BIT);gl.drawArrays(gl.TRIANGLES, 0, n);
}function initVertexBuffers(gl) {var vertices = new Float32Array([0, 0.3,   -0.3, -0.3,   0.3, -0.3]);var n = 3; // The number of verticesvar vertexBuffer = gl.createBuffer();if (!vertexBuffer) {console.log('Failed to create the buffer object');return false;}gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);var a_Position = gl.getAttribLocation(gl.program, 'a_Position');if (a_Position < 0) {console.log('Failed to get the storage location of a_Position');return -1;}gl.vertexAttribPointer(a_Position, 2, gl.FLOAT, false, 0, 0);gl.enableVertexAttribArray(a_Position);return n;
}

最关键的两行是如下两行,我们计算了<旋转矩阵>×<平移矩阵>:

解释模型矩阵: 

我们首先调用了包含set前缀的方法setRotate(),传入的参数用以计算旋转矩阵,并写入modelMatrix(上图第一行)。接下来,我们调用了不带set前缀的方法translate(),意思就是,先计算出一个平移矩阵,然后用原先存储在modelMatrix变量中的矩阵乘以这个新计算出的平移矩阵,将得到的结果写回modelMatrix中(上图第二行)。由于在第一步之后,modelMatrix已经包含了一个旋转矩阵。那么经过了这一步,modelMatrix中的矩阵就是<旋转矩阵>×<平移矩阵>了。

你可能会注意到,“先平移后旋转”的顺序与构造模型矩阵<旋转矩阵>×<平移矩阵>的顺序是相反的,这是因为变换矩阵最终要与三角形的三个顶点的原始坐标矢量相乘,再看一下等式3,你就明白了。

最后,我们把模型矩阵传给顶点着色器中的u_ModelMatrix变量,并如常将图形绘制出来。在浏览器中加载程序,你可以看到如下平移和旋转后的红色三角形。

先旋转,后平移的模型变换:

让我们修改一下示例程序,先进行旋转然后再平移。很简单,你只需交换旋转和平移的次序。在这个例子中,先调用含set前缀的方法setTranslate()进行平移操作,再调用不含set前缀的方法rotate()进行旋转。 

 如你所见,改变旋转和平移的次序之后,结果就不一样了。原理是显而易见的,如下图所示。

http://www.mmbaike.com/news/65664.html

相关文章:

  • h5企业模板网站模板广州网站排名优化报价
  • 天津企业网站设计制作网站设计报价方案
  • 建设网站50m数据库中国软文网官网
  • 做兼职做网站的是什么seo网站内容优化有哪些
  • 河北省网站建设.地推团队去哪里找
  • 襄樊做网站如何提高网站排名
  • 濮阳做网站的公司什么是网络营销与直播电商
  • 淄博网站推广公司那些完整企业网站模板
  • 重庆网站推广公司哪家好公司宣传网页怎么做
  • 南部网站建设seo搜索引擎优化公司
  • html5网站开发公司免费二级域名注册网站有哪些
  • 做列表的网站块链友情链接平台
  • 商城网站做推广方案在seo优化中
  • 做环保网站案例分析图片优化
  • 永嘉高端网站建设效果做博客的seo技巧
  • 重庆网络公司网站建设网站主题
  • 比较火的小程序购物平台宁波seo关键词优化方法
  • 西安手机网站建设公司排名外链互换平台
  • 如何用自己的电脑做网站空间网站推广手段
  • 品牌建设的重要意义培训课题南宁优化网站网络服务
  • 做网站视频存储竞价推广外包
  • wordpress集成apiseo网站查询工具
  • 智能建站是什么比较正规的代运营
  • 深圳网站建设行业新闻免费代理上网网站
  • 本科自考报名郑州seo代理公司
  • 什么公司网站建设做的好互动营销名词解释
  • 免费一天赚500元游戏如何优化seo
  • 个人博客网站备案域名备案
  • 衡阳做网站优化百度网站名称
  • 上线了建站教程百度高级搜索引擎入口