js模擬3D場景效果代碼打包
更新時(shí)間:2012年01月04日 17:36:28 作者:
這幾個(gè)demo上星期平安夜做的,感覺效果不錯(cuò),就放在出來,分享給大家
要在二維空間模擬出三維的效果,就需要把三維的坐標(biāo)轉(zhuǎn)換成二維坐標(biāo)。一個(gè)最基本依據(jù)是:東西越遠(yuǎn),看到大小就越小,坐標(biāo)越往消失點(diǎn)靠攏。
透視公式:
scale = fl / (fl + z);
scale是大小的比例值,0.0到1.0之間,fl是觀察點(diǎn)到成像面的距離,通常這個(gè)值是固定,z就是物件的三維空間中的z軸。
在寫這些代碼之前,我喜歡用面向?qū)ο髞砻枋鑫覍懙倪@些東西,比如我需要一個(gè)場景,場景是個(gè)空間,空間內(nèi)是可以容納各種物件的,物件是個(gè)對象,物件是是x,y,z三個(gè)維度的,場景可以插入任意多的物件,物件就會(huì)以它的坐標(biāo)值,顯示在場景的特定位置,由場景來負(fù)責(zé)物件的顯示位置。
一些demo,請使用鼠標(biāo)移動(dòng)及滾輪來控制。
效果1
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
效果2
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
效果3
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
效果4
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
透視公式:
scale = fl / (fl + z);
scale是大小的比例值,0.0到1.0之間,fl是觀察點(diǎn)到成像面的距離,通常這個(gè)值是固定,z就是物件的三維空間中的z軸。
在寫這些代碼之前,我喜歡用面向?qū)ο髞砻枋鑫覍懙倪@些東西,比如我需要一個(gè)場景,場景是個(gè)空間,空間內(nèi)是可以容納各種物件的,物件是個(gè)對象,物件是是x,y,z三個(gè)維度的,場景可以插入任意多的物件,物件就會(huì)以它的坐標(biāo)值,顯示在場景的特定位置,由場景來負(fù)責(zé)物件的顯示位置。
一些demo,請使用鼠標(biāo)移動(dòng)及滾輪來控制。
效果1
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
效果2
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
效果3
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
效果4
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
您可能感興趣的文章:
- js實(shí)現(xiàn)3D圖片展示效果
- 純JS實(shí)現(xiàn)旋轉(zhuǎn)圖片3D展示效果
- JS實(shí)現(xiàn)3D圖片旋轉(zhuǎn)展示效果代碼
- js+vml創(chuàng)建3D頁面效果代碼
- js實(shí)現(xiàn)3D圖片逐張輪播幻燈片特效代碼分享
- 原生javascript+css3編寫的3D魔方動(dòng)畫旋扭特效
- JS實(shí)現(xiàn)的3D拖拽翻頁效果代碼
- 基于css3新屬性transform及原生js實(shí)現(xiàn)鼠標(biāo)拖動(dòng)3d立方體旋轉(zhuǎn)
- 基于javascript html5實(shí)現(xiàn)3D翻書特效
- js實(shí)現(xiàn)3D圖片環(huán)展示效果
相關(guān)文章
僅IE不支持setTimeout/setInterval函數(shù)的第三個(gè)以上參數(shù)
setTimeout/setInterval,這兩個(gè)函數(shù)相信前端開發(fā)同學(xué)都很熟悉。它們在非IE(6-9)瀏覽器中還可以如下使用2011-05-05
Javascript獲取CSS偽元素屬性的實(shí)現(xiàn)代碼
這篇文章主要介紹了Javascript獲取CSS偽元素屬性的實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-09-09
TypeScript新特性之using關(guān)鍵字的使用方法
TypeScript 5.2版本中新添加了using關(guān)鍵字,目前該關(guān)鍵字的提案也進(jìn)入了ECMAScript的Stage 3,也就是說很快就會(huì)進(jìn)入JavaScript語言本身中,using和const, let和var一樣都是用于變量聲明的,那么它到底有什么與眾不同的地方呢,本文給大家介紹的非常詳細(xì)2023-11-11
javascript制作照片墻及制作過程中出現(xiàn)的問題
這篇文章主要介紹了javascript制作照片墻及制作過程中出現(xiàn)的問題,感興趣的朋友可以參考一下2016-04-04
Javascript數(shù)據(jù)結(jié)構(gòu)之棧和隊(duì)列詳解
要了解JavaScript數(shù)組的堆棧和隊(duì)列方法的操作,需要先對堆棧和隊(duì)列基礎(chǔ)知識(shí)有所了解,下面這篇文章主要給大家介紹了關(guān)于Javascript數(shù)據(jù)結(jié)構(gòu)之棧和隊(duì)列的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
使用CSS+JavaScript或純js實(shí)現(xiàn)半透明遮罩效果的實(shí)例分享
這篇文章主要介紹了使用CSS+JavaScript或純js實(shí)現(xiàn)半透明遮罩效果的實(shí)例分享,編寫半透明遮罩層時(shí)要注意定位問題、不要滿屏遮罩,需要的朋友可以參考下2016-05-05
Typescript 實(shí)現(xiàn)函數(shù)重載的方式
函數(shù)重載簡單點(diǎn)說就是,同一個(gè)函數(shù)的不同實(shí)現(xiàn)方式,根據(jù)傳入的參數(shù)的類型或者長度,決定最終調(diào)用哪一個(gè)實(shí)現(xiàn),本文給大家介紹了Typescript 實(shí)現(xiàn)函數(shù)重載的方式,需要的朋友可以參考下2024-05-05
原生js獲取寬高與jquery獲取寬高的方法關(guān)系對比
這篇文章主要介紹了原生js獲取寬高與jquery獲取寬高的方法關(guān)系對比,需要的朋友可以參考下2014-04-04

