【CityEngine】如何在街道两侧放置路灯、行树等?
分享
使用CGA代码将对象(路灯、树木等)放置到路边。这里用到的主要方法就是Split 函数去做分割。
思路是,现将shape按照较短的轴向进行最初的分割剥离,得到路的两边sidewalk,然后将这些分割出来的形状进行再次分割,也就是沿着长的轴的方向分割成多个重复的小的形状,最后,用实际的模型(如路灯或树等)替换这些小块。
下面是示例代码,参考下:
Sidewalk -->
SidewalkGeometry.
SidewalkObjects # 复制shape!
# 思路:沿着道路的方向纵向切割道路,得到两边的人行道。
# 在剩下的shape“dot”中,插入树木、路灯等静态模型对象。
attr placementWidth = 0.05
attr streetDist = 0.2
attr objectDist = 5
attr objectSize = 0.1
attr objectHeigt = 2
SidewalkObjects -->
# 沿道路纵向分割两边的人行道。
split(v,unitSpace,0) { streetDist : NIL | placementWidth : PlacementStrip | ~1 : NIL }
PlacementStrip -->
# 沿着人行道分割横向切割,切成小段。
split(u,unitSpace,0) {objectDist: NIL | placementWidth : PlacementPoint }*
PlacementPoint -->
alignScopeToGeometry(yUp, 0) # align the shape to the current point shape, thus the street direction!
# r(0,90,0) # 旋转90度,视情况使用,例如路灯模型。
s(objectSize*2, objectHeigt, objectSize)
i("builtin:cube")
center(xz)
效果示例:
文章来源:http://kikitamap.com/2013/04/17/CityEnginePlantTree/
思路是,现将shape按照较短的轴向进行最初的分割剥离,得到路的两边sidewalk,然后将这些分割出来的形状进行再次分割,也就是沿着长的轴的方向分割成多个重复的小的形状,最后,用实际的模型(如路灯或树等)替换这些小块。
下面是示例代码,参考下:
Sidewalk -->
SidewalkGeometry.
SidewalkObjects # 复制shape!
# 思路:沿着道路的方向纵向切割道路,得到两边的人行道。
# 在剩下的shape“dot”中,插入树木、路灯等静态模型对象。
attr placementWidth = 0.05
attr streetDist = 0.2
attr objectDist = 5
attr objectSize = 0.1
attr objectHeigt = 2
SidewalkObjects -->
# 沿道路纵向分割两边的人行道。
split(v,unitSpace,0) { streetDist : NIL | placementWidth : PlacementStrip | ~1 : NIL }
PlacementStrip -->
# 沿着人行道分割横向切割,切成小段。
split(u,unitSpace,0) {objectDist: NIL | placementWidth : PlacementPoint }*
PlacementPoint -->
alignScopeToGeometry(yUp, 0) # align the shape to the current point shape, thus the street direction!
# r(0,90,0) # 旋转90度,视情况使用,例如路灯模型。
s(objectSize*2, objectHeigt, objectSize)
i("builtin:cube")
center(xz)
效果示例:
文章来源:http://kikitamap.com/2013/04/17/CityEnginePlantTree/
0 个评论
推荐内容
相关问题
- 如何在GIS知乎上写文章呢?
- sketchup模型导入cityengine中部分纹理丢失,怎么解决?
- cityengine怎么导入arcgis的shp数据,对shp数据有什么要求
- 如何在EXCEL里把指定时间范围内值分字段求和
- CityEngine能否通过写脚本建模
- CityEngine的学习资源汇总
- CityEngine做的三维环境可以在移动端显示吗?
- arcmap 里面的符号(如箭头符号)如何在arcgis js 里面使用类似的symbol
- 请问如何在C# ArcEngine开发中调用GP工具处理后将数据保存到到任意位置?并读取?
- CityEngine的CGA编辑器图形化在哪里?
- 如何在anaconda和pycharm中使用arcpy?