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

浠水网站建设网站建设的一般过程包括哪些内容

浠水网站建设,网站建设的一般过程包括哪些内容,wordpress标签页面添加自定义字段,做一手楼房的网站绘制矩形面 可以绘制的面只有三角面#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.yutouwan.com/news/63940/

相关文章:

  • 自助建站平台有哪些免费甜点网站模板下载
  • icp备案查询站长之家网站建设行业分析
  • html建站wordpress用户关注
  • 网站优化建设工作总结范文中国最好的网络营销公司
  • 哪些人做数据监测网站购物网站的模块
  • 秀网站模板怎样做网络推广效果好视频
  • 做四级题目的网站一级做a视频在线观看网站
  • 网站 设置特殊的字体济南网站建设开发公司哪家好
  • 巩义企业网站快速优化多少钱洛阳seo外包公司费用
  • 做年报的网站如何攻击织梦做的网站方法
  • 泰安有哪些网站广州专业网站改版
  • 如何利用服务器做网站dedecms_v5.6室内装饰设计公司企业网站模板.rar
  • 石家庄营销型网站建设公司规划局网站建设工作总结
  • 信息化网站建设引言郴州高新区
  • 重庆潼南网站建设公司WordPress文章生成图片插件
  • 网站界面设计描述网站源代码下载工具
  • 企业网站 .networdpress portal
  • 学做网站论坛vip哈尔滨公共资源信息网
  • 国家企业信用信息没有网站怎么做百度移动网站检测
  • 怎么做网站_黑帽seo培训
  • 网站后台管理软件企业淘宝网站备案
  • 做电影售票网站的难点广西云尚网络科技有限公司
  • 有空间域名服务器怎么做网站桂林旅游攻略
  • seo技术大师网站优化方案案例
  • 有经验的盐城网站开发贵州省建设厅实名认证网站
  • 网站开发岗位说明书今天无法登陆建设银行网站呢
  • 淘客建站程序自媒体代运营怎么收费
  • 中山手机网站建设报价WordPress纯代码html地图
  • 服装网站建设项目规划书禄丰县住房和城乡建设局网站
  • 简述如何让网站排名快速提升百度手机助手app下载并安装