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

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

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

    [LV.4]偶尔看看III

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

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

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

    x
    3.复杂坡顶复杂坡顶无法通过CityEngine提供的单一函数就能完成,往往需要多个函数组合使用。更多的依赖于我们建筑屋顶的认识。


    半四坡顶(half hip)



    参考规则如下:
    attr roofAngleGable=25   #屋顶下部坡度
    attr roofAngleHip=25 #顶部坡度

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

    TopFacade-->
        roofGable(roofAngleGable)  
        split(y){ '0.5: comp(f){bottom: NIL | horizontal: RoofHip |aslant:FlatRoof_Tex. | all: color("#00ff00") RoofSide. }}

    RoofHip-->
        roofHip(roofAngleHip)
        FlatRoof_Tex.


    歇山顶歇山顶是我国古代建筑屋顶样式的一种。



    参考规则如下:

    attr roofAngleHip=30 #屋顶下部坡度
    attr roofAngleGable=30   #屋顶上部坡度

    attr overHang=0.4 #延伸出来的长度

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

    TopFacade-->
        roofHip(roofAngleHip,overHang)
        split(y){ '0.5: comp(f){bottom: NIL | horizontal: RoofGable|all:FlatRoof_Tex. } }

    RoofGable-->
        roofGable(roofAngleGable)
        comp(f){bottom:NIL | aslant:FlatRoof_Tex. | side:color("#00ff00") RoofSide.}


    复斜屋顶


    参考规则如下:

    attr roofAngleGable=40   #屋顶下部坡度
    attr roofAngleGable02=25 #顶部坡度

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

    TopFacade-->
        roofGable(roofAngleGable)  
        split(y){ '0.5: comp(f){bottom: NIL | horizontal: RoofGable |aslant:FlatRoof_Tex. | all: color("#00ff00") RoofSide. }}

    RoofGable-->
        roofGable(roofAngleGable02)
        comp(f){bottom:NIL |aslant:FlatRoof_Tex. | all: color("#00ff00") RoofSide. }


    双重斜坡屋顶


    参考规则如下:

    attrroofAngleHip=40 #屋顶下部坡度
    attrroofAngleHip02=25   #顶部坡度

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

    TopFacade-->
        roofHip(roofAngleHip)
        split(y){ scope.sy*0.3:comp(f){ bottom: NIL |horizontal: RoofHip | all:FlatRoof_Tex. } }  

    RoofHip-->
        roofHip(roofAngleHip02)
        FlatRoof_Tex.


    拱顶


    参考规则如下:

    attr curvedAngleResolution=15 #相邻顶面的坡度差
    @Hidden
    attr ArcNum01=90/curvedAngleResolution-1
    @Hidden
    attr calcSegmentHt(ArcNum)= 3* (cos(ArcNum*curvedAngleResolution) - cos((ArcNum+1)*curvedAngleResolution))

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

    VaultRoof(n)-->
        case n> 0:
           roofGable(n*curvedAngleResolution,0,0,false,0)
           split(y){ (calcSegmentHt(n)):comp(f){bottom: NIL | horizontal:  VaultRoof(n-1)  | aslant:FlatRoof_Tex. |all: color("#00ff00") RoofSide.}}
        else:
           comp(f){bottom: NIL |  all:FlatRoof_Tex. }


    圆屋顶



    参考规则如下:


    attr curvedAngleResolution=15 #相邻顶面的坡度差
    @Hidden
    attr ArcNum01=90/curvedAngleResolution-1
    @Hidden
    attr calcSegmentHt(ArcNum)= 3* (cos(ArcNum*curvedAngleResolution) - cos((ArcNum+1)*curvedAngleResolution))

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

    DomeRoof(n)-->
        case n> 0:
           roofHip(n*curvedAngleResolution)
           split(y){ (calcSegmentHt(n)):comp(f){ bottom: NIL |horizontal: DomeRoof(n-1) |all:FlatRoof_Tex.} }
        else:
            comp(f){bottom: NIL | all:FlatRoof_Tex.}


  • TA的每日心情
    奋斗
    2014-5-23 12:06
  • 签到天数: 25 天

    [LV.4]偶尔看看III

     楼主| 发表于 2013-9-26 12:20:47 | 显示全部楼层
    这是什么东东啊

    该用户从未签到

    发表于 2013-9-26 16:04:04 | 显示全部楼层
    不知该说些什么。。。。。。就是谢谢

    该用户从未签到

    发表于 2013-9-26 16:24:06 | 显示全部楼层
    觉得LZ人好好哦~我很认真的看了~觉得真的很有用~谢谢~

    该用户从未签到

    发表于 2013-9-26 16:44:42 | 显示全部楼层
    不知该说些什么。。。。。。就是谢谢

    该用户从未签到

    发表于 2013-9-26 17:05:12 | 显示全部楼层
    学习了,谢谢分享、、、
    您需要登录后才可以回帖 登录 | 立即注册 用百度帐号登录

    本版积分规则

    关闭

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

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