Game AI & Unity/L-system algorithm
[Plants and Python][lec7] L-system의 원리, 시아노 박테리아 cell structure
bay07
2024. 3. 22. 13:51
L-system은 시아노 박테리아를 연구하는 도중에 나온 개념이다.
시아노 박테리아의 cell type이 2가지가 있기 때문에, L-system 에서도 2가지를 factor로 사용한다.
axiom = 'ABBA'
rules = {'A':'AB', 'B':'A'}
''.join(rules.get(c,c) for c in axiom)
A 대신 AB를 넣고, B대신 A를 넣는 것이다.
즉, ABBA는 ABAAAB가 된다.
axiom = 'ABBA'
rules = {'A':'AB', 'B':'A'}
def single_transform(axiom, rules):
return ''.join(rules.get(c,c) for c in axiom)
var = single_transform(axiom, rules)
print(var)
def multiple_transform(sequence, rules, iterations):
lengths = []
for i in range(iterations):
sequence = single_transform(sequence, rules)
lengths.append(len(sequence))
print(sequence)
return sequence, lengths
multiple_transform('A', rules, 10)
def yield_transform(sequence, rules, iterations):
for i in range(iterations):
sequence = single_transform(sequence, rules)
yield len(sequence)
var = yield_transform('A', rules, 10)
print(var)