CityEngine生成不等间距桥墩
? ? ? ? 在CityEngine中建立高架橋時(shí)自動生成的橋墩屬于幾乎等距的橋墩,對于不等距的橋墩該如何處理?另外,等距橋墩會有產(chǎn)生很多問題,比如:橋墩會壓蓋在下方路面上。
解決思路:獲取橋墩點(diǎn)位數(shù)據(jù),之后使用模型替換方法將點(diǎn)數(shù)據(jù)替換為橋墩。
解決方法:
1、?首先是模型的準(zhǔn)備,可以使用3DMax或者其他建模軟件來建立橋墩的三維模型。并將做好的模型文件(obj)拷貝到工程文件夾assets下。
?
2、?模型替換的方法主要是使用i方法在點(diǎn)位置處插入橋墩模型,但插入模型之后需要對模型進(jìn)行一定的旋轉(zhuǎn),因?yàn)槟P团c路面可能不是垂直的,需要計(jì)算一個(gè)橋墩的旋轉(zhuǎn)角度,使用該角度對橋墩進(jìn)行旋轉(zhuǎn)變換使其斷面與道路方向垂直,該角度使用ArcGIS ArcToolBox中的Near工具獲取。
???
Input Feature:橋墩點(diǎn)位數(shù)據(jù)
Near Freature: 道路中心線數(shù)據(jù)
Angle:計(jì)算結(jié)果包含角度
計(jì)算完成之后會在點(diǎn)圖層中增加一個(gè)字段NEAR_ANGLE來記錄這個(gè)角度。
?
在使用NEAR計(jì)算角度的過程中應(yīng)注意的是點(diǎn)不能夠落在線上,應(yīng)該有極小的一點(diǎn)偏離,否則無法計(jì)算。
3、?將計(jì)算的角度數(shù)據(jù)通過Join的方式掛接到原始的點(diǎn)位數(shù)據(jù)屬性表中,然后將原始的點(diǎn)位數(shù)據(jù)重新導(dǎo)出保存一次,生成最終的帶有旋轉(zhuǎn)角度數(shù)據(jù)的點(diǎn)圖層文件。
4、?將點(diǎn)和路面數(shù)據(jù)加載到CityEngine中
?
5、?生成規(guī)則,如下:
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)
結(jié)果如圖:
總結(jié)
以上是生活随笔為你收集整理的CityEngine生成不等间距桥墩的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CityEngine 2012与ArcG
- 下一篇: CityEngine如何生成隧道