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

儿童教育自适应网站模板旅行网站建设方案策划书

儿童教育自适应网站模板,旅行网站建设方案策划书,郑州网站建设行情,长春建设招标网我会持续更新关于wegl的编程指南中的代码。 当前的代码不会使用书中的缩写,每一步都是会展开写。希望能给后来学习的一些帮助 git代码地址 :git 接着 上一节中 接着做平移的转化。在本次的案例案例中主要是xy的坐标变量相加,同时传递个给相…

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

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

git代码地址 :git

接着 上一节中 接着做平移的转化。在本次的案例案例中主要是xy的坐标变量相加,同时传递个给相关变量

<!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>
</head><body><h3>可以按下按键ADSW</h3><p>旋转的角度:<span id="num"></span></p><canvas id='canvas'></canvas><script>let canvas = document.getElementById('canvas');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 rotateX = 0.0;let rotateY = 0;// 三角形的顶点let positonArray = new Float32Array([0.0, 0.5, -0.5, -0.5, 0.5, -0.5])// 获取顶点着色器中变量a_Position的存储位置let a_Position = gl.getAttribLocation(program, 'a_Position');// 激活顶点着色器中变量u_mat4的存储位置let u_mat4 = gl.getUniformLocation(program, 'u_mat4');// 创建buffer对象let buffer = gl.createBuffer();// 绑定buffer对象gl.bindBuffer(gl.ARRAY_BUFFER, buffer)// 向buffer中写入数据gl.bufferData(gl.ARRAY_BUFFER, positonArray, gl.STATIC_DRAW)// 设置attribute变量a_Position的值gl.vertexAttribPointer(a_Position, 2, gl.FLOAT, false, 0, 0)// 启用attribute变量a_Positiongl.enableVertexAttribArray(a_Position);//绘制gl.clearColor(0.0, 0.0, 0.0, 1.0);const render = function () {// 计算角度let cos = Math.cos(Math.PI*rotateX/180.0);let sin = Math.sin(Math.PI*rotateX/180.0);// 计算旋转矩阵let mate4=new Float32Array([cos,sin,0.0,0.0,-sin,cos,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,])// 设置旋转矩阵gl.uniformMatrix4fv(u_mat4, false, mate4)// 清除画布gl.clear(gl.COLOR_BUFFER_BIT);// 绘制图形gl.drawArrays(gl.TRIANGLES, 0, 3)// 更新角度setNumer()}render()document.onkeydown = function (e) {    //对整个页面监听  var keyNum = window.event ? e.keyCode : e.which;       //获取被按下的键值  //判断如果用户按下了回车键(keycody=13)  if (keyNum == 65) {console.log('A');rotateX -= 1; rotateY=0render()}//判断如果用户按下了空格键(keycode=32),  if (keyNum == 68) {console.log('D');rotateX +=1; rotateY=0render()}//判断如果用户按下了空格键(keycode=32),  if (keyNum == 83) {console.log('S');rotateY -= 1; rotateX=0render()}//判断如果用户按下了空格键(keycode=32),  if (keyNum == 87) {console.log('W');rotateY += 1; rotateX=0render();}}function setNumer (){let text = document.getElementById('num');text.innerText = `rotateX:${ rotateX}`} </script>
</body></html>

http://www.yayakq.cn/news/304357/

相关文章:

  • 重庆营销型网站随做的好处国内知名摄影网站
  • 网站关键词书写步骤厦门网站建设推广哪家好
  • 苏州市市政建设集团公司网站网站开发需要什么服务器
  • 自己建个网站多少钱网站建设维护预算
  • 西部数码网站备案核验单做网站用哪个预装系统
  • 小米路由器3做网站二维码生成器在线制作图片
  • 枣庄企业网站推广wordpress4.9 环境
  • 网站站点结构图网页设计师培训费用
  • 凡科建站联系电话网站界面设计的基本原则是什么
  • 网站丢失了怎么办龙岗外贸网站制作
  • 域名就是网站名吗企业管理系统设计
  • 淘宝联盟填网站备案wordpress五分钟建站
  • 境外电商网站建设苏州知名互联网公司
  • 中国建设工程协会网站团关系转接网站建设
  • 响应式网站好不好金融企业类网站模板免费下载
  • 一个完整的网站怎么做郑州百度公司地址
  • 产品微信网站建设重庆天蚕网络科技有限公司
  • 成都 网站建设wordpress主题添加目录
  • 做宣传网站网络免费推广
  • 网站建设模板研究wordpress公式插件
  • 如何在百度搜索到自己的网站搬瓦工 wordpress
  • 网站建设下单源码站内关键词排名软件
  • 互站网站源码网络营销类网站
  • 宣武网站建设深圳市住房和建设局红色警示查询
  • 如何打死网站自己做片头的网站
  • 做投票的网站东莞智通人才招聘网官网
  • 商城网站要怎样建设浏览器里的广告怎么推广的
  • 榆林网站开发织梦网站首页幻灯片不显示
  • 会议网站怎么做南宁做网站找哪家
  • 典型网站建设实例精讲手机连接电脑弹窗wordpress