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

昆山网站建设 熊掌号免费创建社区论坛网站

昆山网站建设 熊掌号,免费创建社区论坛网站,110平方装修全包价格,建立导购网站我会持续更新关于wegl的编程指南中的代码。 当前的代码不会使用书中的缩写&#xff0c;每一步都是会展开写。希望能给后来学习的一些帮助 git代码地址 接着 上一节 接着做平移的转化。本案例是三角形的旋转 <!DOCTYPE html> <html lang"en"><head…

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

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

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>
</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 vec2 a_Position;uniform float u_CosB,u_SinB; void main(){gl_Position.x = a_Position.x * u_CosB - a_Position.y*u_SinB;gl_Position.y = a_Position.x * u_SinB + a_Position.y*u_CosB;gl_Position.z = 0.0;gl_Position.w = 1.0;}`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);} //x抽的旋转角度let rotateX = 0.0;//y轴的旋转角度let rotateY = 0;//三角的三个顶点的坐标位置let positonArray = new Float32Array([0.0, 0.5, -0.5, -0.5, 0.5, -0.5]);// 获取顶点着色器的变量let a_Position = gl.getAttribLocation(program, 'a_Position');// 获取旋转角度的变量let u_CosB = gl.getUniformLocation(program, 'u_CosB')let u_SinB = gl.getUniformLocation(program, 'u_SinB')// 创建缓冲区let buffer = gl.createBuffer();//将缓冲区对象绑定到目标gl.bindBuffer(gl.ARRAY_BUFFER, buffer);//向缓冲区写入数据gl.bufferData(gl.ARRAY_BUFFER, positonArray, gl.STATIC_DRAW)//将缓冲区对象绑定到目标gl.vertexAttribPointer(a_Position, 2, gl.FLOAT, false, 0, 0)// 启用变量a_Positiongl.enableVertexAttribArray(a_Position);//绘制gl.clearColor(0.0, 0.0, 0.0, 1.0);const render = function () {//赋值x角度gl.uniform1f(u_CosB, Math.cos(Math.PI*rotateX/180.0));//赋值y角度gl.uniform1f(u_SinB, Math.sin(Math.PI*rotateX/180.0));// 清空画布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/842223/

相关文章:

  • 免费的软件下载网站宁乡网页设计
  • 宝山宜昌网站建设百度推广没有效果怎么办
  • 网站建设的报告分析工信部查网站备案
  • 网站个人空间郑州哪家专业做淘宝网站
  • 网站运行团队建设做竞价要会做网站吗
  • 网站建设swf播放器源码阳江招聘网最新招聘信息网官网
  • 时尚工作室网站源码个人业务网站免费制作
  • 工业和信息化部网站备案系统酒店类网站开发策略
  • 炫酷网站首页拼多多网站建设过程
  • 网站建设用的软件阜创汇网站建设名额
  • 大连网站制作杭州网站定制开发
  • 西安有哪些做网站的公司好郑州网站建设制作费用
  • 公司网站百度地图app科技产品网站建设
  • 广州网站制作公司优化wordpress关闭评论窗口
  • 射阳做网站的公司在哪苏州外发加工网
  • 郑州网站建设网页设计花蝴蝶免费视频在线观看高清版
  • ps怎么做网站一寸的照片珠海北京网站建设
  • 网站做访问追踪校园网络工程设计方案
  • 网站内容避免被采集长沙网站优化排名推广
  • 高埗网站仿做关于企业的网站
  • 怎么查网站备案域名备案智库门户网站建设
  • 学怎么做建筑标书哪个网站网站开发与设计静态网页源代码
  • 网站建设代码合同网站建设维护员
  • 如何快速学会做网站wordpress手机上图片不显示
  • 做网站界面尺寸是多少合肥百姓网网站建设
  • 定制礼品的网站有哪些室内装修设计学习网
  • 东莞seo网站优化方式算命网站该怎样做
  • 怎么创办自己的网站海口网站设计公司
  • 佛山网站制作在线做网站 计算机有交嘛
  • 网站想换空间设计师个人网站模板