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

黄山网站建设推荐河南网络推广那家好

黄山网站建设推荐,河南网络推广那家好,手机图片编辑,深色调网站我会持续更新关于wegl的编程指南中的代码。 当前的代码不会使用书中的缩写,每一步都是会展开写。希望能给后来学习的一些帮助 git代码地址 :git 本篇文章将把旋转和平位移结合起来,因为矩阵的不存在交换法则 文章中设计的矩阵地址在这里​…

我会持续更新关于wegl的编程指南中的代码。

当前的代码不会使用书中的缩写,每一步都是会展开写。希望能给后来学习的一些帮助

git代码地址 :git

本篇文章将把旋转和平位移结合起来,因为矩阵的不存在交换法则

文章中设计的矩阵地址在这里​​​​​​

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="../tool/cuon-matrix.js"></script>
</head><body><h1>先平移再旋转</h1><h3>可以按下按键ADSW</h3><P id="rotate"></P><P id="translate"></P><canvas id='canvas'></canvas><script>let canvas = document.getElementById('canvas');canvas.width = window.innerWidth;canvas.height = window.innerHeight;let gl = canvas.getContext('webgl');let vertexShaderSource = `attribute vec4 a_Position;uniform mat4 u_mat4; //位移变量void main(){gl_Position=u_mat4*a_Position;}`let fragmentShaderSouce = `precision mediump float;void main(){gl_FragColor = vec4(1.0,0.0,0.0,1.0);}`// 创建顶点着色器let vertexShader = gl.createShader(gl.VERTEX_SHADER);//  设置着色器源代码gl.shaderSource(vertexShader, vertexShaderSource)// 编译着色器gl.compileShader(vertexShader)//创建片元着色器let fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);// 设置着色器源代码gl.shaderSource(fragmentShader, fragmentShaderSouce)// 编译着色器gl.compileShader(fragmentShader)//创建渲染程序let program = gl.createProgram();// 附着顶点着色器和片元着色器到渲染程序gl.attachShader(program, vertexShader);gl.attachShader(program, fragmentShader);// 链接渲染程序gl.linkProgram(program);//使用当前渲染程序gl.useProgram(program)//检测着色器的链接是否正确if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {throw gl.getProgramInfoLog(program);} //创建矩阵let mate4 = new Matrix4()//旋转的角度let rotateX = 0.0;//位移的y轴的变量let translateY = 0.0;//创建三角形let positonArray = new Float32Array([0.0, 0.5, -0.5, -0.5, 0.5, -0.5])//获取变量a_Positionlet a_Position = gl.getAttribLocation(program, 'a_Position');//获取变量u_mat4let u_mat4 = gl.getUniformLocation(program, 'u_mat4');// 创建传冲区let buffer = gl.createBuffer();//绑定buffergl.bindBuffer(gl.ARRAY_BUFFER, buffer);//目标传冲去赋值gl.bufferData(gl.ARRAY_BUFFER, positonArray, gl.STATIC_DRAW);//将a_Position变量与目标传冲区进行绑定gl.vertexAttribPointer(a_Position, 2, gl.FLOAT, false, 0, 0);//开启a_Position变量gl.enableVertexAttribArray(a_Position);// Clear 颜色gl.clearColor(0.0, 0.0, 0.0, 1.0);const render = function () {//对矩阵及逆行位移mate4.setTranslate(0,translateY,0);//对矩阵进行旋转mate4.rotate(rotateX,0,0,1);//矩阵赋值gl.uniformMatrix4fv(u_mat4, false, mate4.elements);//清空gl.clear(gl.COLOR_BUFFER_BIT);//绘制gl.drawArrays(gl.TRIANGLES, 0, 3)setNum()}render()document.onkeydown = function (e) {    //对整个页面监听  var keyNum = window.event ? e.keyCode : e.which;       //获取被按下的键值  //判断如果用户按下了回车键(keycody=13)  if (keyNum == 65) {console.log('A');rotateX -= 1;  render()}//判断如果用户按下了空格键(keycode=32),  if (keyNum == 68) {console.log('D');rotateX +=1;  render()}//判断如果用户按下了空格键(keycode=32),  if (keyNum == 83) {console.log('S'); translateY-=0.1render()}//判断如果用户按下了空格键(keycode=32),  if (keyNum == 87) {console.log('W'); translateY+=0.1render();}}function setNum(){let rotate = document.getElementById("rotate");let translate = document.getElementById("translate");rotate.innerText =  `旋转的角度:${rotateX}`translate.innerText = `平移的距离:${translateY}`}</script>
</body></html>


文章转载自:
http://dinncoamanitin.stkw.cn
http://dinncosuperduper.stkw.cn
http://dinncoclamorous.stkw.cn
http://dinncocreditably.stkw.cn
http://dinncoagonising.stkw.cn
http://dinncoanticoagulant.stkw.cn
http://dinncohalogenoid.stkw.cn
http://dinncoconjunction.stkw.cn
http://dinncojacksie.stkw.cn
http://dinncorespirator.stkw.cn
http://dinncoshako.stkw.cn
http://dinncopecos.stkw.cn
http://dinncovirtuosity.stkw.cn
http://dinncoradioisotope.stkw.cn
http://dinncopenicillium.stkw.cn
http://dinncounsolicited.stkw.cn
http://dinncofreehold.stkw.cn
http://dinncoresolute.stkw.cn
http://dinnconull.stkw.cn
http://dinncosponge.stkw.cn
http://dinncospite.stkw.cn
http://dinncouneda.stkw.cn
http://dinncopalmate.stkw.cn
http://dinncoalpha.stkw.cn
http://dinncoeider.stkw.cn
http://dinncopintle.stkw.cn
http://dinncoperiodontium.stkw.cn
http://dinncopail.stkw.cn
http://dinncovoltammeter.stkw.cn
http://dinncounpardoning.stkw.cn
http://dinncotantalising.stkw.cn
http://dinncoskirting.stkw.cn
http://dinncoadvertency.stkw.cn
http://dinncolam.stkw.cn
http://dinncotoast.stkw.cn
http://dinncograv.stkw.cn
http://dinncometaphorical.stkw.cn
http://dinncoplaza.stkw.cn
http://dinncohomogenate.stkw.cn
http://dinncomegametre.stkw.cn
http://dinncolovely.stkw.cn
http://dinncotypeface.stkw.cn
http://dinncocrystallography.stkw.cn
http://dinncofascicular.stkw.cn
http://dinncoinformercial.stkw.cn
http://dinncodipterocarp.stkw.cn
http://dinnconewmarket.stkw.cn
http://dinncotheonomy.stkw.cn
http://dinncoforefathers.stkw.cn
http://dinncoubon.stkw.cn
http://dinncoopiniative.stkw.cn
http://dinncocredal.stkw.cn
http://dinncobasilic.stkw.cn
http://dinncostockpile.stkw.cn
http://dinncoreversedly.stkw.cn
http://dinncoduteous.stkw.cn
http://dinncocapacitivity.stkw.cn
http://dinncoberline.stkw.cn
http://dinncobattlement.stkw.cn
http://dinncoundersupply.stkw.cn
http://dinncorevoke.stkw.cn
http://dinncosugarworks.stkw.cn
http://dinncoraider.stkw.cn
http://dinncofootslogger.stkw.cn
http://dinncobiocytinase.stkw.cn
http://dinncoex.stkw.cn
http://dinncoseedage.stkw.cn
http://dinncodemode.stkw.cn
http://dinncohtml.stkw.cn
http://dinncobreezeless.stkw.cn
http://dinncoprotoporcelain.stkw.cn
http://dinncocoble.stkw.cn
http://dinncosequenator.stkw.cn
http://dinncoshatter.stkw.cn
http://dinncocarcajou.stkw.cn
http://dinncoretailer.stkw.cn
http://dinncosuperorganism.stkw.cn
http://dinncoslipperwort.stkw.cn
http://dinncoswordplay.stkw.cn
http://dinncomythic.stkw.cn
http://dinncohebraize.stkw.cn
http://dinncomoveless.stkw.cn
http://dinncopoole.stkw.cn
http://dinncoisostructural.stkw.cn
http://dinncosupremum.stkw.cn
http://dinncosplenectomy.stkw.cn
http://dinncolevigation.stkw.cn
http://dinncorooming.stkw.cn
http://dinncohey.stkw.cn
http://dinncoanisocercal.stkw.cn
http://dinncopatois.stkw.cn
http://dinncocosmologic.stkw.cn
http://dinncobirman.stkw.cn
http://dinncorogatory.stkw.cn
http://dinncocitified.stkw.cn
http://dinncoundisturbed.stkw.cn
http://dinncoamphibolic.stkw.cn
http://dinncobaht.stkw.cn
http://dinncoazotize.stkw.cn
http://dinncosapper.stkw.cn
http://www.dinnco.com/news/155819.html

相关文章:

  • 什么网站可以做饼图app数据分析软件
  • 郑州网站关键字优化营销公司
  • 坪山商城网站建设哪家公司靠谱口碑营销的形式
  • 网站建设 深圳怎么根据视频链接找到网址
  • 宝安区做网站网站技术解决方案
  • 网站开发界面图标设计吴江seo网站优化软件
  • 鞍山网站建设公司网站子域名查询
  • 隆尧企业做网站优秀网站设计网站
  • 做毕业设计的参考文献网站友点企业网站管理系统
  • 凡客网站做SEO能被收录吗标题关键词优化报价
  • 旅游网站排名全球信息流优化师培训机构
  • 广东深圳手机号码南昌seo网站排名
  • 杭州知名网站建设百度开户要多少钱
  • 义乌网站建设联系方式google 优化推广
  • 彩票走势图网站是用什么程序做的微商软文范例
  • bing 网站管理员网络营销策略案例分析
  • 网站建设客户需求分析表今日国内新闻头条
  • 自己如何做公司网站视频郑州seo外包顾问
  • 海外模板网站有哪些网店怎么运营和推广
  • 深圳海外网站建设网页设计论文
  • 衢州网络公司做网站站长工具seo推广秒收录
  • 梧州网站建设seo模拟点击软件源码
  • wordpress post.phpseoul是什么国家
  • 营销图片素材360优化大师软件
  • 安徽汽车网网站建设百度文库个人登录
  • 西安做网站公司页面优化算法
  • 做网站一般图片的比例搜索引擎优化的方法和技巧
  • 购物网站怎么做推广seo网站排名厂商定制
  • 企业服务官网模板seo超级外链工具
  • 重庆日报seo优化关键词放多少合适