当前位置: 首页 > Web前端 > HTML5

BuginWebGLdrawingLine(3)

时间:2023-04-05 12:57:01 HTML5

插入广告(长期有效)**MONO需要在武汉招聘JavaScript工程师。几个要求:前端技术(JavasScript、HTML、CSS)、可视化技术(Canvas、WebGL)兴趣浓的基础不好可以培养,基础好的可以合谋做大事物。如果您有兴趣,给我发邮件:hr@servasoft.com**------------------------------------------------------------------文本分割线-----------------------------------------------------------------之前铺垫了很多,今天分享一些纯干货。上一篇已经介绍过,模拟线过面时,每个顶点的顶点数据包括:端点坐标、偏移量、上一个端点坐标、下一个端点坐标。当然,如果我们通过索引来绘制,它还包括索引数组,下面的代码通过传递一组线的端点数组来创建上述相关数据:bk.Line3D=function(points,colors){this.points=积分;this.colors=colors;}bk.Line3D.prototype.computeData=function(){varlen=this.points.length;变量计数=len*3*2;varposition=newFloat32Array(计数);varpositionPrev=newFloat32Array(count);varpositionNext=newFloat32Array(计数);varcolor=newFloat32Array(count);varoffset=newFloat32Array(len*2);varindicesCount=3*2*(len-1);varindices=newUint16Array(indicesCount);vartriangleOffset=0,vertexOffset=0;for(vari=0;i0){vari3n=i3-6;positionPrev[i3n+0]=point.x;位置上一页[i3n+1]=点.y;positionPrev[i3n+2]=point.z;positionPrev[i3n+3]=point.x;positionPrev[i3n+4]=point.y;positionPrev[i3n+5]=point.z;}varidx=3*i;变量i2=i*2;偏移[i2+0]=5;偏移[i2+1]=-5;}变种结束=计数-1;for(i=0;i<6;i++){positionNext[i]=positionNext[i+6];positionPrev[end-i]=positionPrev[end-i-6];}for(i=0;i