cracks.py 文件源码

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

项目:BlenderAddons 作者: Maxiriton 项目源码 文件源码
def GenerateCracks(pPointNumber, pChildProba, pX, pY, pVector, pAngle,
                   pShortAngle, pLengthAtt, pProbaAtt, pBaseRadius):
    lCrackPointList = []
    x = pX
    y = pY
    z = 0
    vec = pVector

    for lCurrentPoint in range(pPointNumber):
        lNewPointCrack = CrackPoint()
        lNewPointCrack.x = x
        lNewPointCrack.y = y
        lNewPointCrack.z = z
        lNewPointCrack.position = lCurrentPoint
        lNewPointCrack.hasChildren = DefineProba(pChildProba)
        lRadius = DefineCurveRadius(lCurrentPoint, pPointNumber,
                                    lNewPointCrack.hasChildren,
                                    pBaseRadius)
        if lNewPointCrack.hasChildren:
            lLen = int(pPointNumber / pLengthAtt)
            lNewProba = pChildProba / pProbaAtt
            lNewPointCrack.children = GenerateCracks(lLen, lNewProba,
                                                     x, y, pVector, pAngle,
                                                     pShortAngle,
                                                     pLengthAtt, pProbaAtt,
                                                     lRadius)
        lNewPointCrack.radius = lRadius
        lCrackPointList.append(lNewPointCrack)

        if lCurrentPoint % 5:
            angle = random.uniform(-pShortAngle, pShortAngle)
        else:
            angle = random.uniform(-pAngle, pAngle)
        eul = mathutils.Euler((0.0, 0.0, math.radians(angle)), 'XYZ')
        vec.rotate(eul)
        x = x + vec.x
        y = y + vec.y
        z = z + vec.z

    return lCrackPointList
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号