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

做网站推广电话网站建设制作免费推广

做网站推广电话,网站建设制作免费推广,简洁大气的公司网站,外贸电商网站开发价格绘制矩形面 可以绘制的面只有三角面#xff0c;要绘制矩形面的话#xff0c;只能用两个三角形去拼 1 #xff09; 使用 三角带 TRIANGLE_STRIP 绘制矩形 回顾一下之前的规律#xff1a; 第一个三角形#xff1a;v0v1v2第偶数个三角形#xff1a;以上一个三角形…绘制矩形面 可以绘制的面只有三角面要绘制矩形面的话只能用两个三角形去拼 1 使用 三角带 TRIANGLE_STRIP 绘制矩形 回顾一下之前的规律 第一个三角形v0v1v2第偶数个三角形以上一个三角形的第二条边下一个点为基础以和第二条边相反的方向绘制三角形第奇数个三角形以上一个三角形的第三条边下一个点为基础以和第二条边相反的方向绘制三角形 关键顶点绘制数据 const vertices new Float32Array([-0.2, 0.2,-0.2,-0.2,0.2, 0.2,0.2,-0.2, ])绘制 gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4) 2 使用 三角带 TRIANGLE_FAN 绘制矩形 回顾一下之前的规律 v0v1v2: 以上一个三角形的第三条边下一个点为基础按照和第三条边相反的顺序绘制三角形v0v2v3: 同上v0v3v4: 同上v0v4v5: 同上 基于此设计顶点关键数据 const vertices new Float32Array([-0.2, -0.2,0.2, -0.2,0.2, 0.2,-0.2, 0.2 ])绘制 gl.drawArrays(gl.TRIANGLE_FAN, 0, 4) 3 使用独立三角形绘制矩形 绘制规律 这里就是普通的三角形画了2个需要6个点上面两个面的绘制顺序是 v0v1v2v3v4v5 顶点关键数据 const vertices new Float32Array([-0.2, 0.2,-0.2, -0.2,0.2, 0.2,0.2, 0.2,-0.2, -0.2,0.2, -0.2 ])可以根据自己的需求绘制各种各样的图形 封装多边形对象 1 封装一个Poly 对象用于绘制多边形 const defAttr () ({gl: null,vertices: [],geoData: [],size: 2,attrName: a_Position,count: 0,types: [POINTS], })export default class Poly {constructor(attr) {Object.assign(this,defAttr(),attr)this.init()}init() {const { attrName, size, gl } this;if(!gl) returnconst vertexBuffer gl.createBuffer()gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer)this.updateBuffer()const a_Position gl.getAttribLocation(gl.program,attrName)gl.vertexAttribPointer(a_Position, size, gl.FLOAT, false, 0, 0)gl.enableVertexAttribArray(a_Position)}addVertice(...params) {this.vertices.push(...params)this.updateBuffer()}popVertice() {const { vertices, size }thisconst len vertices.lengthvertices.splice(len-size,len)this.updateCount()}setVertice(ind,...params) {const { vertices, size }thisconst i ind * sizeparams.forEach((param,paramInd) {vertices[iparamInd] param})}updateBuffer() {const { gl,vertices } thisthis.updateCount()gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW)}updateCount() {this.count this.vertices.length / this.size}updateVertices(params) {const { geoData } thisconst vertices []geoData.forEach(data {params.forEach(key {vertices.push(data[key])})})this.verticesvertices}draw(types this.types) {const { gl, count } thisfor(let type of types) {gl.drawArrays(gl[type],0,count);}} }属性 gl webgl上下文对象vertices 顶点数据集合在被赋值的时候会做两件事 更新count 顶点数量数据运算尽量不放渲染方法里向缓冲区内写入顶点数据 geoData 模型数据对象数组可解析出 vertices 顶点数据size 顶点分量的数目positionName 代表顶点位置的attribute 变量名count 顶点数量types 绘图方式可以用多种方式绘图 方法 init() 初始化方法建立缓冲对象并将其绑定到webgl 上下文对象上然后向其中写入顶点数据。将缓冲对象交给attribute变量并开启attribute 变量的批处理功能。addVertice() 添加顶点popVertice() 删除最后一个顶点setVertice() 根据索引位置设置顶点updateBuffer() 更新缓冲区数据同时更新顶点数量updateCount() 更新顶点数量updateVertices() 基于geoData 解析出vetices 数据draw() 绘图方法 2 应用1 const poly new Poly({gl,vertices:[0, 0.2] })poly.draw([POINTS])setTimeout((){poly.addVertice(-0.2, -0.1);gl.clear(gl.COLOR_BUFFER_BIT);poly.draw([POINTS]) }, 1000)setTimeout((){gl.clear(gl.COLOR_BUFFER_BIT);poly.draw([POINTS,LINE_STRIP]) }, 2000)3 应用2 // 实例化多边形 const poly new Poly({gl,types:[POINTS,LINE_STRIP] })// 鼠标点击事件 canvas.addEventListener(click, (event) {const { x,y } getMousePosInWebgl(event, canvas);poly.addVertice(x,y);gl.clear(gl.COLOR_BUFFER_BIT);poly.draw(); });
http://www.zqtcl.cn/news/338334/

相关文章:

  • 常州住房和城乡建设部网站网站开发哪家公司口碑好
  • 网站备案 登录名巴中交通建设有限公司网站
  • 门户资源分享网站模板软件网站开发市场前景
  • 海南省住房和城乡建设厅官方网站列举五种常用的网站推广方法
  • aso优化服务平台东莞优化seo
  • 高唐做创建网站的公司网站开发费怎么做账
  • 域名有没有被注册哪个网站最好中企动力网站建设方案
  • 无锡网站制作计划我的世界寻找建筑网站
  • 烟台建设集团招聘信息网站青岛百度公司总部
  • php网站模板怎么用怎么做链接网站
  • 完整网站开发视频教程安丘营销型网站建设
  • 女与男爱做电影网站免费网站外包公司
  • 传统文化传播公司网站建设wordpress 插件开启
  • 哪些网站是做外贸生意的网站建设所需美工
  • 网站建设哪个公司比较好惠州网络问政平台
  • 河南网站备案系统短信广州注册公司程序
  • 苏晋建设集团网站跨专业的简历怎么制作
  • 交互网站怎么做设计师作品网站
  • 国外网站的分析工具有哪些办公室装修计入什么会计科目
  • 手机网站 需求模板3000元建设个人网站
  • 请人做网站域名和主机thinkphp网站开发实战教程
  • 做地产网站哪家好饮料网站建设价格
  • 外管局网站 报告怎么做wordpress 阿里
  • 湘潭做网站 去磐石网络山西自助建站费用低
  • 温州哪里做网站比较好昆明网页制作开发
  • 网站建设淘宝客网站建设与网页设计入门
  • 网站推广营销联系方式俄语免费网站制作
  • 广东企业网站seo点击软件搭建本地网站
  • 商丘做网站的价格专业网站制作哪家强
  • 瑞安微信网站软件公司网站设计与制作