- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CityEngine基于规则的建模与设计
CityEngine基于规则建模与设计易智瑞(中国)信息技术有限公司广州分公司 罗国超目录CGA Shapes规则执行 规则基础规则立面规则FacadeWizad基于GIS数据建模CGA Shapes 模型 CGA Shapes不同于Shapes, Shapes为CGA规则建模型的起点,最长见的为建筑物轮廓( initial shapes )由规则创建而产生模型或者模型的组成部分,可以简称为模型模型的组成ShapeSymbol :模型的名字Parameters:参数Attributes:刻画模型的构成与形状,模型创建完成后可以交互式修改Geometry:几何对象,包含纹理、颜色、图形Scope:外接矩形范围Pivot:模型坐标系(轴) 规则CGA文件(Computer Generated Architecture)包含了一系列的规则决定模型如何生成拉伸(extrude)拉伸规则就是把地块变成一个建筑extrude(height)extrude(axisWorld, height)参数extrude(height) 默认沿y轴拉伸extrude(axisWorld, height) 设定拉伸轴线 使用世界坐标系的轴作为拉伸轴线Lot? extrude(20)?分割组件(comp)分割组件就是把模型的不同部分分开comp(compSelector) { selector operator operations | selector operator operations ... }参数compSelector (keyword)要分割的组件类型,selector (keyword) 要选择的对象分割组件(comp)函数Lot--extrude(20)comp(f){top:TopFacade | side:SideFacade}TopFacade--color(0,0,1)SideFacade--color(1,0,0)切割(split)切割就是把建筑分成不同的楼层split(splitAxis) { size1 : operations1 | size2 : operations2 | ... | sizen-1 : operationsn-1 }参数SplitAxis:切割的方向Size:分割的宽度切割(split)函数SideFacade--split(y){3:X}//split(y){3:X}*//split(y){~3:X}*规则执行规则执行过程替换执行即有一个或者多个模型替换初始模型或形状如A -- B A执行过一次就不再执行。寻找B规则,没有规则匹配,创建过程就结束 模型树( shape tree )A为树干 B为树叶 ,树叶非常重要所有树叶构成了创建的模型内部节点不可见 注释行注释// a comment # another comment块注释/* block comments can be used to write multi-line comments */内置注释Lot -- Garden House /*Garage*/ Fence ... comp(f){front : F | /* side : S | */ top : T} 属性静态全局变量(在一个规则文件中)初始指定特点值在inspector中修改attr height = rand(10,30)attr landuse = 50%:residential else:industrialLot -- extrude(height) Envelope(landuse)Envelope(landuse) -- case height 15: SmallBuilding else: LargeBuildingSmallBuilding -- split(y){~3:Floor.}*LargeBuilding -- split(y){~5:LFloor.}* 标准规则Lot -- s(0.8,1,0.8) center(xz) extrude(8) color (1,0,0) EnvelopeEnvelope -- split(y){ ~3: Floor.}*~平均值 * 重复含参数规则Lot -- s(0.8,1,0.8) center(xz) Footprint(8,geometry.area)Footprint(height,area) -- t(0,0,1) extrude(height) Envelope(area)Envelope(area) -- split(y){ ~3 : Floor(area) }*条件规则根据不同参创建不同的模型类似switch-c
文档评论(0)