gen.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:tree-gen 作者: friggog 项目源码 文件源码
def radius_at_offset(self, stem, z_1):
        """ calculate radius of stem at offset z_1 along it """
        n_taper = self.param.taper[stem.depth]

        if n_taper < 1:
            unit_taper = n_taper
        elif n_taper < 2:
            unit_taper = 2 - n_taper
        else:
            unit_taper = 0
        taper = stem.radius * (1 - unit_taper * z_1)

        if n_taper < 1:
            radius = taper
        else:
            z_2 = (1 - z_1) * stem.length
            if n_taper < 2 or z_2 < taper:
                depth = 1
            else:
                depth = n_taper - 2
            if n_taper < 2:
                z_3 = z_2
            else:
                z_3 = abs(z_2 - 2 * taper * int(z_2 / (2 * taper) + 0.5))
            if n_taper < 2 and z_3 >= taper:
                radius = taper
            else:
                radius = (1 - depth) * taper + depth * sqrt(pow(taper, 2) - pow((z_3 - taper), 2))
        if stem.depth == 0:
            y_val = max(0, 1 - 8 * z_1)
            flare = self.param.flare * ((pow(100, y_val) - 1) / 100) + 1
            radius *= flare
        return radius
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号