<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    TWaver - 專注UI技術(shù)

    http://twaver.servasoft.com/
    posts - 171, comments - 191, trackbacks - 0, articles - 2
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    TWaver版3D化學(xué)元素周期表

    Posted on 2014-07-14 10:12 TWaver 閱讀(6855) 評(píng)論(25)  編輯  收藏

    很早就有人做3D網(wǎng)頁版的化學(xué)元素周期表了,酷炫效果和新鮮技巧一度被眾多粉絲奉為神明,爭相研究和效仿。甚至有人放棄一切撲向這顆蠟燭,不由總是想到那個(gè)OPPO廣告女主角拽拽的鄙視道:“辭職去旅游!你敢嗎?”

    俺不敢,不過用TWaver做一個(gè)也沒用幾個(gè)小時(shí)。所以就老在想:不就旅個(gè)游么,至于嘛?

    這個(gè)3D元素周期表做了一些改進(jìn):卡片上增加了漢字及拼音讀音,原因你懂得——各位程序猿沒幾個(gè)敢大聲讀這些漢字的。還好每個(gè)字的主要部分還大都認(rèn)識(shí),多少可以小聲蒙一下,加上拼音就少了許多尷尬。另外在形狀布局和特效上也豐富了一點(diǎn),具體可以看下方視頻連接。

    技術(shù)上來說,用TWaver 3D來做的思路略有不同。最開始網(wǎng)上這個(gè)程序是使用HTML5、CSS3、WebGL、THREE.js、TWEEN.js等技術(shù)做的。使用TWaver就不用這么麻煩了,直接一個(gè)mono.js就差不多搞定了。技術(shù)上依舊是WebGL+js,但沒有使用CSS3和其他框架。效果和效率都很好。

    實(shí)現(xiàn)上難度不大,大概思路如下:

    1. 用數(shù)組定義好化學(xué)元素周期表的數(shù)據(jù)。包括編號(hào)、漢字、拼音、數(shù)值、英文等等。然后在內(nèi)存中動(dòng)態(tài)生成每個(gè)元素對應(yīng)的圖片卡,并轉(zhuǎn)成base64格式的內(nèi)存url字符串。注意圖片的格式、透明度、顏色等細(xì)節(jié);
    2. 為每個(gè)化學(xué)元素new一個(gè)3D立方體,并把內(nèi)存圖片貼圖到立方體正面。立方體的厚度0就行了,其他面都透明即可;
    3. 監(jiān)聽鼠標(biāo)事件。當(dāng)鼠標(biāo)over每個(gè)物體時(shí),讓立方體發(fā)光;點(diǎn)擊物體時(shí),讓立方體動(dòng)畫反轉(zhuǎn)一圈;
    4. 計(jì)算好幾個(gè)形狀布局對應(yīng)的空間坐標(biāo),并事先記錄到每個(gè)立方體的client屬性表中。例如:node.setClient(‘grid’,{x:100,y:340});
    5. 放幾個(gè)按鈕,每個(gè)按鈕點(diǎn)擊后,讓所有的立方體到對應(yīng)的形狀的位置上去,同時(shí)啟用動(dòng)畫機(jī)制;

    實(shí)際代碼中,也要留意一些注意事項(xiàng):

    1. 動(dòng)畫:當(dāng)?shù)谝淮蝿?dòng)畫尚未執(zhí)行完畢,用戶又點(diǎn)擊其他按鈕執(zhí)行新動(dòng)畫時(shí),需要先判斷當(dāng)前有無正在運(yùn)行的動(dòng)畫,并及時(shí)讓動(dòng)畫停止。同時(shí)還要判斷是否需要把數(shù)值恢復(fù)成初始值或動(dòng)畫正常結(jié)束所設(shè)定的值。這里如不仔細(xì)處理,可能會(huì)導(dǎo)致動(dòng)畫將卡片的位置、角度錯(cuò)亂。
    2. 布局:球形、螺旋、隨機(jī)等空間點(diǎn)其實(shí)都很好計(jì)算。尤其球形布局,開始大家可能會(huì)去尋找“在一個(gè)半徑為r的球形表面均勻散布n個(gè)點(diǎn),求每個(gè)點(diǎn)的坐標(biāo)?”這樣的題目。這樣就把問題復(fù)雜化了。因?yàn)楹唵蔚囊曈X布局并不需要特別嚴(yán)謹(jǐn)?shù)奈恢脭?shù)值,所以大致把球進(jìn)行徑向和橫向切片進(jìn)行數(shù)值插入即可;
    3. 貼圖:最開始,我們可能會(huì)覺得程序是使用了100張小圖片進(jìn)行貼圖。但實(shí)際上,由于每個(gè)卡片的區(qū)別僅僅是文字,所以完全可以在內(nèi)存動(dòng)態(tài)生成。這樣速度快節(jié)省了網(wǎng)絡(luò)下載圖片的時(shí)間以及維護(hù)圖片的麻煩,同時(shí)文字和圖片等樣式也更容易控制。這也都是HTML5的canvas技術(shù)為大家?guī)淼暮锰帯?/span>
    4. 物體朝向:在布局過程中,每個(gè)卡片的旋轉(zhuǎn)和朝向是一個(gè)要考慮的問題。例如球形,每個(gè)卡片要面向球形圓心發(fā)射線的外方向,螺旋形卡片則朝向水平外方向,等等。計(jì)算這些坐標(biāo)和角度需要很多數(shù)學(xué)運(yùn)算,光是求坐標(biāo)系和直角坐標(biāo)系轉(zhuǎn)換之類的就夠大家忙活一陣子了。而用TWaver就簡單了:每個(gè)物體直接lookAt一個(gè)點(diǎn)就行了。例如球形卡片,每幀動(dòng)畫只要執(zhí)行:node.lookAt(0,0,0)就行了,對嗎?還不完全對。這樣lookAt到中心點(diǎn),不就“屁股”朝外了嗎?用戶看到的字是卡片的背面,是反的。要解決也簡單,應(yīng)當(dāng)讓它lookAt自己坐標(biāo)兩倍的地方,也就是圓心放射線的外面:node.lookAt(x*2, y*2, z*2),這樣就對了。
    5. 發(fā)光。鼠標(biāo)over每個(gè)物體,都會(huì)看到發(fā)光。而鼠標(biāo)over在光暈位置,卻不會(huì)觸發(fā)over事件。這是怎么做到的呢?其實(shí)也是小技倆,大家可以看看程序,自己研究吧。

    生成內(nèi)存圖片代碼片段:

    1var url = canvas.toDataURL("image/png");
    2node.setStyle('front.m.texture.image',url);

    球形布局坐標(biāo)計(jì)算代碼片段:

    1var radius=1000;
    2var phi = Math.acos( -1 + ( 2 * index ) / total );
    3var theta = Math.sqrt( total * Math.PI ) * phi;
    4var x = radius * Math.cos( theta ) * Math.sin( phi );
    5var y = radius * Math.sin( theta ) * Math.sin( phi );
    6var z = radius * Math.cos( phi );

    程序和源代碼都已經(jīng)在TWaver的MONO DESIGN產(chǎn)品中,感興趣的朋友可以登錄在線網(wǎng)址www.mono-design.cn或下載產(chǎn)品包。趕緊試試吧!








    TWaver 3D Demo 欣賞
    http://v.youku.com/v_show/id_XNzM4OTAzODY0.html



    評(píng)論

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-14 15:32 by 互聯(lián)網(wǎng)
    0 0這效果做得叼爆了

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-15 07:19 by 手機(jī)賺錢軟件http://www.szapk.cn
    手機(jī)賺錢軟件http://www.szapk.cn

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-16 17:28 by 互聯(lián)網(wǎng)思維
    很漂亮做得




    http://www.ma4.net/maas-9.html

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-16 20:54 by 鄭州SEO
    這個(gè)寫的真不錯(cuò) 加油

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-17 00:09 by 西安墓園
    完美, 后期關(guān)注

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-17 14:44 by 余姚廢品回收
    這個(gè)化學(xué)元素周期表做的真帥

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-17 18:58 by 司馬青衫博客
    好深?yuàn)W的感覺啊

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-18 16:40 by 真二網(wǎng)
    我有好幾個(gè)腐女朋友是在真二網(wǎng)認(rèn)識(shí)的,多腐,有次三個(gè)人出門,包包里都帶了黃瓜。

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-19 08:28 by 金利鎖業(yè)
    給力支持。。。。。。。。。

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-21 13:49 by 屌絲智慧
    這周期表弄得挺漂亮的 我都忘啦 哈哈

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-21 17:28 by java論壇
    HTML5寫的真?

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-21 17:28 by 河南純水設(shè)備
    看起來很有幫助

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-23 12:11 by 金利鎖業(yè)
    給力支持博主、、、、、、、、、

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-23 13:52 by 真二網(wǎng)
    為什么我這里看不到圖啊。。。

    # 163貴州人事考試信息網(wǎng)  回復(fù)  更多評(píng)論   

    2014-07-25 08:13 by 163貴州人事考試信息網(wǎng)
    發(fā)光。鼠標(biāo)over每個(gè)物體,都會(huì)看到發(fā)光。而鼠標(biāo)over在光暈位置,卻不會(huì)觸發(fā)over事件。這是怎么做到的呢?其實(shí)也是小技倆,大家可以看看程序,自己研究吧。
    http://www.0851gx.com/

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-26 07:55 by 旺達(dá)鎖業(yè)
    謝謝分享,。。。。。。。。。。。

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-07-31 14:20 by 旺達(dá)鎖業(yè)
    支持博主更新。。。。。。。。。

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-08-07 16:15 by 司馬青衫文學(xué)
    這么好的博客為什么沒有像盧松松他們的博客那樣包裝的好呢。。。




    文學(xué)論壇www.simaqingshan.com

    # 鄭州制帽廠  回復(fù)  更多評(píng)論   

    2014-08-21 14:44 by 我愛我家
    看了文章之后,令我大開眼界

    # 鄭州制帽廠  回復(fù)  更多評(píng)論   

    2014-08-21 14:45 by 我愛我家
    鄭州制帽廠 歡迎咨詢

    # 尼龍毛刷  回復(fù)  更多評(píng)論   

    2014-08-21 14:46 by 鄭州制帽廠
    說的很好 一定的支持下 看起來很不錯(cuò)的哦

    # 鄭州萬和熱水器售后維修  回復(fù)  更多評(píng)論   

    2014-08-21 14:48 by 鄭州萬和熱水器售后維修
    看過之后,很有收獲,希望博主更新更多相關(guān)知識(shí)

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-08-25 20:39 by 互聯(lián)網(wǎng)思維
    http://www.ma4.net/

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-10-29 08:51 by 我樂勵(lì)志網(wǎng)
    勵(lì)志成才,健康成長,人生在于經(jīng)歷,經(jīng)歷是一種經(jīng)驗(yàn)的積累,只有自己去經(jīng)歷了才能體會(huì)到其中的酸甜苦辣,。人生沒有彩排,每天都是現(xiàn)場直播,就看自己怎么去演繹自己的人生,怎么去追求自己的人生,
    更多精彩請到www.56lzw.com

    # re: TWaver版3D化學(xué)元素周期表  回復(fù)  更多評(píng)論   

    2014-10-29 08:53 by 我樂勵(lì)志網(wǎng)
    我樂勵(lì)志網(wǎng), 給足你信心,為你尋找追求方向
    http://www.56lzw.com/

    只有注冊用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费播放特黄特色毛片| 久久青青草原亚洲AV无码麻豆| 亚洲色欲色欲综合网站| 国产天堂亚洲国产碰碰| 亚在线观看免费视频入口| 国产免费观看a大片的网站| 777亚洲精品乱码久久久久久| 日本永久免费a∨在线视频| 中文字幕无码播放免费| 中文字幕精品亚洲无线码二区 | 亚洲av色福利天堂| 国产成人亚洲精品电影| 成人浮力影院免费看| 亚洲va中文字幕无码久久| 一二三四在线观看免费中文在线观看| 大学生一级毛片免费看| 亚洲人成网站影音先锋播放| 一级人做人爰a全过程免费视频| 麻豆国产人免费人成免费视频 | 亚洲精品乱码久久久久久按摩| 亚洲av成人一区二区三区在线播放| 97精品免费视频| 亚洲狠狠婷婷综合久久久久| 免费一级特黄特色大片| 色视频色露露永久免费观看| 亚洲国产成人综合| 8x成人永久免费视频| 国产V亚洲V天堂A无码| 一个人看的免费视频www在线高清动漫| 永久免费bbbbbb视频| 久久夜色精品国产噜噜亚洲a| 亚洲成人免费在线观看| 亚洲国产精品自在在线观看| 久久99久久成人免费播放| 亚洲av无码专区在线观看素人| 天天综合亚洲色在线精品| 丁香花免费完整高清观看 | 成人免费乱码大片A毛片| 又大又硬又爽免费视频| 蜜桃传媒一区二区亚洲AV| 影音先锋在线免费观看|