因为爱GIS,我们聚集于此
  • 快捷登录:
查看: 1342|回复: 7
收起左侧

[教程] 利用CityEngine创建不同类型的屋顶(一)

[复制链接]
  • TA的每日心情
    奋斗
    2014-5-23 12:06
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    发表于 2013-9-26 12:25:44 | 显示全部楼层 |阅读模式

    有你,GIS才会更精彩,马上注册,我们一起学GIS。

    您需要 登录 才可以下载或查看,没有帐号?立即注册 用百度帐号登录

    x
    在世界各国和各地区的建筑中,屋顶作为建筑的顶部构件,是建筑中最重要的形式构成部分,也是传递历史和区域文化信息的典型符号。同样,在CityEngine制作建筑规则时如果能正确表达建筑的屋顶信息,对建筑特征的表达有着至关重要的影响。笔者从己有案例并结合实际的工作总结部分屋顶创建的规则与大家分享www.gis520.com,以期起到抛砖引玉的作用。由于对建筑了解有限难免表述有误,敬请指正。
    1.平顶
    普通平顶



    参考规则如下:
    Lot-->
        extrude(20)
        comp(f){top:color("#0000ff")TopFacade |side:color("#ff0000")SideFacade. |all:NIL}


    带女儿墙的平顶



    参考规则如下:

    attr Parapet_hei=1.2  #女儿墙的高度
    attr Parapet_wid=0.3#女儿墙的宽度

    Lot-->
        extrude(20)
        comp(f){top:color("#0000ff")TopFacade |side:color("#ff0000")SideFacade. |all:NIL}

    #女儿墙屋顶规则
    TopFacade-->
        setback(Parapet_wid){all:color("#00ff00")RoofSide.|remainder:extrude(-Parapet_hei)comp(f){bottom:NIL | top:reverseNormals()TopFacade_Tex.|all:reverseNormals()color("#00ff00")RoofSide.}}

    思考:除了利用setback实现面的后退外,offset()函数同样能满足这方面的需求。那两者又会有怎么样的区别呢?请读者自行测试,根据不同的需求选用不同的后退函数。


    阶式屋顶

    参考规则如下:

    attr cascad_Num=3#层阶数
    attr cascad_Hei=0.5 #层阶高
    attr cascad_Wid=0.5 #层阶增加的距离

    Lot-->
        extrude(20)
        comp(f){top:color("#0000ff")TopFacade |side:color("#ff0000")SideFacade. |all:NIL}

    TopFacade-->
        case cascad_Num>1:
               s(scope.sx+cascad_Wid,scope.sy+cascad_Wid,'1)
               center(xy)
               extrude(cascad_Hei)
               set(cascad_Num,cascad_Num-1)
               comp(f){top:TopFacade |all:color("#00ff00")RoofSide.}
        else:
               s(scope.sx+cascad_Wid,scope.sy+cascad_Wid,'1)
               center(xy)
               extrude(cascad_Hei)
               comp(f){top:TopFacade. | all:color("#00ff00")RoofSide.}


    2.简单坡顶
    单坡顶



    参考规则如下:

    attr roofAngle=15#屋顶坡度
    attr sideIndex=1 #坡向的起始边的索引值

    Lot-->
        extrude(20)
        comp(f){top:color("#0000ff")TopFacade |side:color("#ff0000")SideFacade. |all:NIL}

    TopFacade-->
        roofShed(roofAngle,sideIndex)comp(f){top:FlatRoof_Tex. |side:color("#00ff00")RoofSide.}


    双坡顶



    参考规则如下:

    attr roofAngle=25#屋顶坡度
    attr overHang=0.4#延伸出来的长度

    Lot-->
        extrude(20)
        comp(f){top:color("#0000ff")TopFacade | side:color("#ff0000")SideFacade. | all:NIL}

    TopFacade-->
        roofGable(roofAngle,overHang,overHang)comp(f){bottom:NIL | aslant:FlatRoof_Tex. | side:color("#00ff00")RoofSide.}

    四坡顶



    参考规则如下:

    attr roofAngle=25#屋顶坡度
    attr overHang=0.4#延伸出来的长度

    Lot-->
        extrude(20)
        comp(f){top:color("#0000ff")TopFacade |side:color("#ff0000")SideFacade. |all:NIL}

    TopFacade-->
        roofHip(roofAngle,overHang)
        TopFacade_Tex.



    金字塔顶



    参考规则如下:

    attr roofAngle=25#屋顶坡度

    Lot-->
        extrude(20)
        comp(f){top:color("#0000ff")TopFacade |side:color("#ff0000")SideFacade. |all:NIL}

    TopFacade-->
        roofPyramid(roofAngle)
        TopFacade_Tex.

    更多屋顶样式制作:《利用CityEngine创建不同类型的屋顶(二)》 点击



    该用户从未签到

    发表于 2013-9-26 14:22:07 | 显示全部楼层
    谢谢楼主,共同发展

    该用户从未签到

    发表于 2013-9-26 14:43:00 | 显示全部楼层
    路过,支持一下啦
  • TA的每日心情
    奋斗
    2014-5-23 12:06
  • 签到天数: 25 天

    [LV.4]偶尔看看III

     楼主| 发表于 2013-9-26 15:03:25 | 显示全部楼层
    学习了,谢谢分享、、、

    该用户从未签到

    发表于 2013-9-26 15:23:58 | 显示全部楼层
    我是个凑数的。。。

    该用户从未签到

    发表于 2013-9-26 15:44:00 | 显示全部楼层
    不错不错,楼主您辛苦了。。。

    该用户从未签到

    发表于 2013-9-27 05:18:29 | 显示全部楼层
    有意思。试试。
    您需要登录后才可以回帖 登录 | 立即注册 用百度帐号登录

    本版积分规则

    关闭

    热门推荐上一条 /1 下一条

    © 2013-2014 GIS520 ( 陕ICP备14003560号-1 )Powered by Discuz! X3.2 Template by giscafer   
    快速回复 返回顶部 返回列表