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

腾和企业网站 优帮云用asp做网站需要什么软件

腾和企业网站 优帮云,用asp做网站需要什么软件,天津做优化好的公司,如何建立属于自己的网址玩Canvas玩了有两三个礼拜了#xff0c;平面的东西玩来玩去也就那样#xff0c;所以就开始折腾3D了。因为Canvas画布终究还是平面的#xff0c;所以要有3D就得抽象出一个Z轴。然后再把3D坐标转换成2D坐标#xff0c;画到画布上#xff0c;再通过旋转等变换效果来产生3D感。…玩Canvas玩了有两三个礼拜了平面的东西玩来玩去也就那样所以就开始折腾3D了。因为Canvas画布终究还是平面的所以要有3D就得抽象出一个Z轴。然后再把3D坐标转换成2D坐标画到画布上再通过旋转等变换效果来产生3D感。做3D一般就是由点到线然后由线到面。【点】点的话之前我有写过关于3D的博文解析3D标签云其实很简单 这篇博文虽然讲的是用div实现的3D标签云但是追根到底产生的3D原理是一样的就是最简单的由点构成的3D了。每一个标签就是一个点。也可以直接看这个DEMO3DBall里面的总共有五百个点对象每个点对象相应的根据他们的Z轴来改变他们的大小和透明度再平均分布在球面上就构成了点球体了。【线】如果知道怎么做点之后线也就容易了只要把点连起来就行了。这个没做DEMO不过也确实不难。就循环moveTo然后lineTo线就出来了。【面】这篇博文主要讲面滴。二话不说先上个DEMO吧 做一个立方体我用了三个对象点对象面对象以及立方体本身一个对象下面这个是点对象x,y,z是点的三维坐标_get2d方法是把三维坐标转换到二维层面来。fallLength是焦距。XML/HTML Code复制内容到剪贴板varVectorfunction(x,y,z){this.x x;this.y y;this.z z;this._get2dfunction(){varscalefallLength/(fallLengththis.z);varxcenterX this.x*scale;varycenterY this.y*scale;return {x:x , y:y};}}然后是面对象面对象的属性页很容易理解一个面就是一个正方形 v1v2v3v4是面的四个顶点zIndex这个属性很重要是代表这个面的层级是在最外面还是在里面这个必须要有这样当用canvas画的时候才能让这个面画在最前面才不会被其他的面遮盖。zIndex的值也很容易理解就是顶点z轴坐标的平均值其实也就是中心点的z轴坐标。颜色就是这个面的颜色啦。XML/HTML Code复制内容到剪贴板varFacefunction(vector1,vector2,vector3,vector4,color){this.v1vector1;this.v2vector2;this.v3vector3;this.v4vector4;this.color color;this.zIndex (this.v1.z  this.v2.z  this.v3.z  this.v4.z)/4;this.drawfunction(){ctx.save();ctx.beginPath();ctx.moveTo(this.v1._get2d().x , this.v1._get2d().y);ctx.lineTo(this.v2._get2d().x , this.v2._get2d().y);ctx.lineTo(this.v3._get2d().x , this.v3._get2d().y);ctx.lineTo(this.v4._get2d().x , this.v4._get2d().y);ctx.closePath();//ctx.fillStylergba(parseInt(Math.random()*255),parseInt(Math.random()*255),parseInt(Math.random()*255),0.2);ctx.fillStylethis.color;ctx.fill();}}最后是立方体本身对象因为立方体最后要旋转所以立方体对象里面不仅有面对象还要有点对象点旋转后才会引起面的旋转。length是立方体的边长_initVector是初始化立方体的各个顶点_draw方法就是把所有点形成面将面放入数组然后对面进行排序(就是根据面里的zIndex排序)排序好后调用每个面里的draw方法。立方体就出来了。XML/HTML Code复制内容到剪贴板varCubefunction(length){this.length length;this.faces [];this.vectors [];}Cube.prototype {_initVector:function(){this.vectors[0]  new Vector(-this.length/2 , -this.length/2 , this.length/2);this.vectors[1]  new Vector(-this.length/2 , this.length/2 , this.length/2);this.vectors[2]  new Vector(this.length/2 , -this.length/2 , this.length/2);this.vectors[3]  new Vector(this.length/2 , this.length/2 , this.length/2);this.vectors[4]  new Vector(this.length/2 , -this.length/2 , -this.length/2);this.vectors[5]  new Vector(this.length/2 , this.length/2 , -this.length/2);this.vectors[6]  new Vector(-this.length/2 , -this.length/2 , -this.length/2);this.vectors[7]  new Vector(-this.length/2 , this.length/2 , -this.length/2);},_draw:function(){this.faces[0]  new Face(this.vectors[0] , this.vectors[1] , this.vectors[3] , this.vectors[2] , #6c6);this.faces[1]  new Face(this.vectors[2] , this.vectors[3] , this.vectors[5] , this.vectors[4] , #6cc);this.faces[2]  new Face(this.vectors[4] , this.vectors[5] , this.vectors[7] , this.vectors[6] , #cc6);this.faces[3]  new Face(this.vectors[6] , this.vectors[7] , this.vectors[1] , this.vectors[0] , #c6c);this.faces[4]  new Face(this.vectors[1] , this.vectors[3] , this.vectors[5] , this.vectors[7] , #666);this.faces[5]  new Face(this.vectors[0] , this.vectors[2] , this.vectors[4] , this.vectors[6] , #ccc);this.faces.sort(function(a , b){return b.zIndex - a.zIndex;});this.faces.foreach(function(){this.draw();})}}立方体做好了接下来就可以让它动起来了。根据鼠标位置改变立方体转动的角度。rotateX和rotateY方法就是让所有点绕X轴旋转以及绕Y轴旋转。这个的原理我在之前那个博文上好像有说过。。。。如果想了解更多可以自己去百度一下计算机图形学3D变换。绕X轴和绕Y轴是最简单的旋转矩阵了。当然如果有兴趣的还可以去搜一下绕任意轴旋转矩阵。。。这个有点复杂我本来想用它来做个魔方不过遇到一些问题暂时还没解决。好吧扯远了。通过rotateX和rotateY两个方法可以让每个点获得下一帧的位置在动画循环中重绘。这样转动的立方体就做出来了。XML/HTML Code复制内容到剪贴板if(addEventListener in window){window.addEventListener(mousemove , function(event){varxevent.clientX - canvas.offsetLeft - centerX;varyevent.clientY - canvas.offsetTop - centerY;angleYx*0.0001;angleXy*0.0001;});}else {window.attachEvent(onmousemove , function(event){varxevent.clientX - canvas.offsetLeft - centerX;varyevent.clientY - canvas.offsetTop - centerY;angleYx*0.0001;angleXy*0.0001;});}function rotateX(vectors){varcosMath.cos(angleX);varsinMath.sin(angleX);vectors.foreach(function(){vary1this.y * cos - this.z * sin;varz1this.z * cos  this.y * sin;this.yy1;this.zz1;});}function rotateY(vectors){varcosMath.cos(angleY);varsinMath.sin(angleY);vectors.foreach(function(){varx1this.x * cos - this.z * sin;varz1this.z * cos  this.x * sin;this.xx1;this.zz1;})}cubenewCube(80);cube._initVector();function initAnimate(){cube._draw();animate();}function animate(){ctx.clearRect(0,0,canvas.width,canvas.height)rotateY(cube.vectors);rotateX(cube.vectors);cube._draw();if(requestAnimationFrame in window){requestAnimationFrame(animate);}else if(webkitRequestAnimationFrame in window){webkitRequestAnimationFrame(animate);}else if(msRequestAnimationFrame in window){msRequestAnimationFrame(animate);}else if(mozRequestAnimationFrame in window){mozRequestAnimationFrame(animate);}else {setTimeout(animate , 16);}}全部代码我就不贴了DEMO里通过控制台都可以看到。我也没引用其他什么框架之类的直接copy下来就能用了。能写好转动的一个立方体后多个立方体转动也可以做出来了。戳DEMO面3D立方体2    3D立方体线(这个纯碎觉得没有面更酷而已)
http://www.pierceye.com/news/524159/

相关文章:

  • 南通百度网站快速优化运城小程序开发公司
  • 做一个综合商城网站多少钱网站建设运营必备人员
  • 聊城做wap网站公司手机网站设计教育类模板
  • 深圳做网站的人做微信投票的网站5
  • 靖安建设局网站WordPress使用云数据库
  • h5制作哪个网站好济南php网站开发
  • 深圳网站建设类公司最大的网站开发公司
  • ps做图游戏下载网站有哪些内容百度ip地址
  • 网站到期续费吗网站首页缩略图 seo
  • 网站制作案例 立邦建立个人网站能赚钱吗
  • 重庆巨能建设集团网站网站seo置顶 乐云践新专家
  • 专业制作网站 上海黑糖 wordpress 主题
  • 数据库网站开发卡片风格网站
  • 信息发布平台建站网站服务器天付
  • 免费做网站方法北京公司排名seo
  • 网站备案登记表晋城市建设局 网站
  • 网站备案会检查空间运营策划
  • 关于做网站建筑人力网
  • 网站开发培训合肥企业解决方案工作组
  • 怎么看待网站开发做网站好赚钱
  • 网站开发工作方案建设网站用什么软件排版
  • 网站建设耂首先金手指建设一个电商网站需要多少钱
  • 网站建设需注意的企业网站建设好的例子
  • 30岁做网站运营优秀的html5网站
  • 专门做眼镜的网站国内重大新闻事件2021年10月
  • 具有价值的网站制作菜单宣传网站怎么做的
  • 做网站 博客信息网站开发网络公司
  • 网站建设有哪些荣誉做响应式网站好不好
  • 精品资料网站网站建立
  • 网站开发印花税营销咨询