def a_prod(sym):
"""Production rule for A"""
if random() < sym.parameters["l"]:
ang = random() * __sec_branch_ang_v__ + __sec_branch_ang__
return [LSymbol("!", {"w": sym.parameters["w"]}),
LSymbol("^", {"a": random() * 15 - 5}),
LSymbol("F", {"l": sym.parameters["l"],
"leaves": int(sym.parameters["l"] * __n_leaves__),
"leaf_d_ang": 40,
"leaf_r_ang": 140}),
LSymbol("-", {"a": ang / 2}),
LSymbol("["),
LSymbol("A", {"l": sym.parameters["l"] * __length_r__,
"w": sym.parameters["w"] * __width_r__}),
LSymbol("]"),
LSymbol("+", {"a": ang}),
LSymbol("["),
LSymbol("A", {"l": sym.parameters["l"] * __length_r__,
"w": sym.parameters["w"] * __width_r__}),
LSymbol("]"),
LSymbol("-", {"a": ang / 2}),
LSymbol("A", {"l": sym.parameters["l"] * __length_r__,
"w": sym.parameters["w"] * __width_r__})]
else:
return [LSymbol("!", {"w": sym.parameters["w"]}),
LSymbol("^", {"a": random() * 15 - 5}),
LSymbol("F", {"l": sym.parameters["l"],
"leaves": int(sym.parameters["l"] * __n_leaves__),
"leaf_d_ang": 40,
"leaf_r_ang": 140}),
LSymbol("A", {"l": sym.parameters["l"] * __length_r__,
"w": sym.parameters["w"] * __width_r__})]
评论列表
文章目录