10 2012 档案
摘要:1,让一个object支持数组遍历函数的写法:['filter','forEach','every','map','some'].forEach(function(name){ Collection.prototype[name]=function(){ returnArray.prototype[name].apply(this._items, arguments); }});2,遍历对象时为什么要加hasOwnPropertyOf()?为了判断false之类的属性值。
阅读全文
摘要:Single page app是指类似gmail一样的在单个网页上无跳转实现各种网络操作的网页应用。HTML5的兴起也让构建此类单页应用变得更加简便。但目前国内在这方面的积累很少,除了百度和腾讯有个别团队已经有成形的产品外,很少有得到广泛应用的单页app出现。不过作为未来的一个趋势,这是值得我们好好积累的。这里把构建单页app的几个重要经验列出来供大家分享。当然,关键还是在实践,如果实践过后再细品这些原则,会有醍醐灌顶的感觉。如果是正在设计单页app,这些原则也会给你很大的启发。DOM是只写的。程序输出HTML,在elements上操作,但是没有任何东西从DOM读出。在DOM上保存状态是很..
阅读全文
摘要:第四章 使用three.js加载以图片为纹理的模型(下)在上一章里,为了演示的方便,我们选择了一个简单的模型。但是如前所述,在实际的生产环境中,一方面我们的模型更为复杂,另一方面我们的贴图也不是普通的照片,而是处理过的uv图。uv图就是xyz三维图通过变换形成的二维图,类似数学里面学的极坐标变换。UV图的制作可以借用一些软件工具完成,在blender里面也有UV图编辑器。这一节我们选用three.js官方例程中的一个加载头部模型的示例。原示例有三百多行代码,我把它精简到一百行多一点,包括扩了核心的uv图加载显示部分。而更多的处理代码则直接删掉,虽然显示效果因此差了一些,但精简的代码更适合说明和
阅读全文
摘要:第四章 使用three.js加载以图片为纹理的模型(上)在前言中我们介绍过,我们一般不用three.js自带的三维模型创建函数去拼凑我们想要的三维模型,而是使用类似Blender一样的三维建模工具去定制三维模型,然后导出为three.js可以识别的jason格式,加载显示。通过这种方式,我们可以构建较为原始的三维模型在浏览器端显示,比如我们前面看到的马克杯模型。如果单纯依靠三维建模去逼近现实世界中的形体外观是很难的,细节的修缮将给3D建模带来巨大的工作量,同时也会导致模型的加载器计算量巨大,不仅对人还是机器都是巨大的挑战。好在我们可以另辟蹊径,不去追求模型的精细度,而在模型的纹理上做文章,尤其
阅读全文
摘要:第三章 使用three.js加载blender生成的马克杯模型先看看效果图,这是在firefox里面加载的代码如下: 1 var SCREEN_WIDTH = window.innerWidth, 2 SCREEN_HEIGHT = window.innerHeight, 3 windowHalfX = window.innerWidth / 2, 4 windowHalfY = window.innerHeight / 2, 5 container, camera, scene, loaded, 6 renderer, mouseX = 0, mous...
阅读全文
摘要:第二章 Blender的使用blender最快的学习方法就是看视频教程了,这里要感谢一位台湾大哥,制作了一整套的适合初学者的视频教程:http://v.youku.com/v_show/id_XMzI4MjkyNDAw.html?f=16694862因为我也是初学者,所以这里我把自己学习过程中遇到的一些问题列出来,想必会对其他初学者有所帮助。1,Blender极其灵活的窗口系统。初学软件,我一般习惯胡乱点开各种菜单功能,先随意转悠转悠。但玩到最后好几个重要的菜单都丢了,只剩下一个乱七八糟的模型在画面中央摆着,让我好不丧气。比如下图的这个拥有一堆工具按钮,包含无数神奇功能的入口的视窗,如果弄没了
阅读全文
摘要:前言前端3D效果的展示方法很多,如果简单的显示一个立方体,我们可以用六块div,每块div结合CSS的旋转特性,旋转出不同的角度组装出来一个盒子。当我们拖拽这个盒子的时候,可以用JS根据鼠标新的坐标点刷新那六个div新的旋转角度参数,让六个面始终同步旋转,始终是闭合的,所以视觉效果来看是3D的。上述方法适用于简单的3D模型,比如立方体、长方体等。其特点是,各种控件都支持这种css旋转,比如我们可以把一个iframe做出3D的旋转效果,同时不影响iframe上网页内容的操作,这是比较酷的。但是对于一些更注重细节的3D模型,则很难用css特性来实现。也许我们可以用更多的,粒度更小的div来组装,但
阅读全文
浙公网安备 33010602011771号