大地球源碼
1. Box2d源碼分析(概述)
box2d是一個物理引擎,一般看到的是c++版本,這個源碼分析,主要分析jbox2d。本部分介紹一個簡單的案例,了解box2d物理世界的重力。
1.它是一個物理引擎,但它不是一個語言。
2.它可以模擬物體運動和碰撞。
3.集成了大量的物理和運動計算
4.可以模擬:加速、減速、拋物線等
萬物之始,先創建承載的載體世界,它可以干什麼?
1.可以創建萬物,創建對象,刪除對象,以及相關使用的介面。
2.地球我們站在地上,不是你我有多牛,而是引力牛。
box2d中也可以模擬重力,是一個氏蘆螞向量模擬,
重力向下 ,所以x的值為0,y的值為負數表示向下。(不同的語言有所差異),如果設置為0,就為一個失重狀態。
擴展:
世界中有兩個參數,一個是重力,一個是不是睡眠,表示將靜止不動的物體需要設置為睡眠不。
睡眠的理解:
真實的物體運動的時候總會收到各殲埋種力,最終會停下來,在box2d中也會進行模擬,如果不睡眠就會遍歷所有的物體,進行復雜的運算。如果設置為true就會將它們直接跳過,不進行模擬運動
創建好了世界,讓它開始工作,我們會不斷的更新它,它們會進行大量的計算模擬,得到剛體的坐標,位置、速度等信息,這個所有的操作都在step中執行。它的函數有三個參數。
positionDelta的值越大,單次執行的矯正精度越高,比較費資源,一般設置10.(我一般設置8)
在開發過程中自己根據使用的場景,選擇一嘩巧個合適的值,、
項目地址放git上。
2. 百度地圖這個地球3D圖是怎樣的技術實現的
電子地圖的城市三維模型都是混合建模技術,比如用攝影測量法得到建築物的實體模型,通過其他感測器獲得的紋理進行自動貼膜,不同的數據量會參照最高效的建模技術實現。
正常來說,三維城市建模分成兩個步驟,先是針對現實世界的外觀、尺度測量和紋理貼圖的採集,基於照片及紋理數據的基礎上,再採用建模技術可行性實現逼真的3D效果。按照測量范圍的大小,可以按照①攝影自動建模技術,②傳統手工建模,③激光點雲數據建模,④參數化批量建模,劃分不同的區域按不同的情況批量進行。
① 大數據量,主要用激光點雲數據建模技術,多用於道路等帶狀地形及其兩側建築的可見立面建模;
② 中等數據量,主要用攝影自動建模技術、傳統手工建模技術,可以做到以大面積城市地貌為主的建模,ThingJS支持城市級、園區級場景建模,是高德地圖的合作夥伴之一,提供3D可視化技術合作,現在3D源碼免費開放中,【注冊免費】
③ 小數據量,主要用參數化批量建模。
以上的建模技術都可以使用3DSMAX,CAD, 草圖大師, Revit,ThingJS是近兩年新興的3D框架,對前端開發者特別友好,不用再學習高深的建模或者3D專業知識,一樣也能快速建模。
為了快速開發3D項目,ThingJS提供模型庫擴展,十萬個場景任意選用,效果杠杠滴