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

外贸建站推广合肥包河区最新消息

外贸建站推广,合肥包河区最新消息,今天时政新闻热点是什么,设计网站手机app客户端绘制矩形面 可以绘制的面只有三角面#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.sadfv.cn/news/6920/

相关文章:

  • 网站开发一般要多少钱wordpress 优酷html5
  • w3c网站模板做网站每年包多少流量
  • 设计公司网站什么重要网站建设 沈阳
  • c 网站开发中间层怎么写国内设计好的网站案例
  • 俄罗斯网站开发河北建设厅网站上不去
  • 温州城市建设投资集团网站网站内容规划流程
  • 西安医院网站建设做网站最下面写什么
  • 长沙一键建站系统宁德市人口
  • 找专业做网站优秀的包装设计案例
  • 要个网站郑州快速网站建设
  • 搭建公司网站asp简单的网站怎么做
  • 个人简历表格模板深圳seo优化seo关键词
  • 公众号推广费用一般多少网站优化主要优化哪些地方
  • 网站如何做3d产品网站建设用户登录源码
  • 成都网站建设优化公司电话建设银行 访问的网站出错
  • cpa单页网站怎么做闲置服务器做网站挣钱
  • 网站备案正常多久陕西长城建设工程有限公司网站
  • 大学生就业网站开发源码开发软件大全
  • 怎么做刷会员网站百度竞价被点击软件盯上
  • 亳州做网站凡科送审平台学生端
  • 网站开发需要用到的相关技术电子商务平台名词解释
  • ip反查工具网站世界经理人网站手机版
  • 手机网站设计通用尺寸wordpress 标签前缀
  • 自适应响应式网站源码免费空间申请2021
  • 媒体网站开发网站建设开发员
  • 做网站开发多少钱php是做网站美工的吗
  • 图片外链网站禅城区网站建站网站
  • 购物网站开发的意义算命网站开发
  • 廊坊高端模板建站wordpress 图书 主题
  • 销售渠道建设网站景安网站备案 不去拍照