CityEngine生成不等间距桥墩
? ? ? ? 在CityEngine中建立高架橋時自動生成的橋墩屬于幾乎等距的橋墩,對于不等距的橋墩該如何處理?另外,等距橋墩會有產生很多問題,比如:橋墩會壓蓋在下方路面上。
解決思路:獲取橋墩點位數據,之后使用模型替換方法將點數據替換為橋墩。
解決方法:
1、?首先是模型的準備,可以使用3DMax或者其他建模軟件來建立橋墩的三維模型。并將做好的模型文件(obj)拷貝到工程文件夾assets下。
?
2、?模型替換的方法主要是使用i方法在點位置處插入橋墩模型,但插入模型之后需要對模型進行一定的旋轉,因為模型與路面可能不是垂直的,需要計算一個橋墩的旋轉角度,使用該角度對橋墩進行旋轉變換使其斷面與道路方向垂直,該角度使用ArcGIS ArcToolBox中的Near工具獲取。
???
Input Feature:橋墩點位數據
Near Freature: 道路中心線數據
Angle:計算結果包含角度
計算完成之后會在點圖層中增加一個字段NEAR_ANGLE來記錄這個角度。
?
在使用NEAR計算角度的過程中應注意的是點不能夠落在線上,應該有極小的一點偏離,否則無法計算。
3、?將計算的角度數據通過Join的方式掛接到原始的點位數據屬性表中,然后將原始的點位數據重新導出保存一次,生成最終的帶有旋轉角度數據的點圖層文件。
4、?將點和路面數據加載到CityEngine中
?
5、?生成規則,如下:
attr height=0//從屬性表獲取值
attr NEAR_ANGLE = 0//從屬性表獲取值
lot-->i("Bridge_Pire.obj")
????? r(0,NEAR_ANGLE+90,0)?
????? s(5,height,20)
?? ???? t(0,-scope.sy-0.5,0)?
????? ???? center(xz)
? ??? mirrorScope(false,true,false)
結果如圖:
總結
以上是生活随笔為你收集整理的CityEngine生成不等间距桥墩的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CityEngine 2012与ArcG
- 下一篇: CityEngine如何生成隧道