Build a natural looking tree

treeN, a natural looking tree shouldn't have solid leaves. Instead, there are random empty spaces between leaves.

We will use randint() in random module, check to make sure to import randint(), add this line to the beginning of the program if it's not already there.

from random import randint

Tree leave lines

First we need a vertical leaves line that has random empty spots, Y_tree_line

# Y_tree_line, 'leaves':8

def Y_tree_line(x,y,z,h,m):
    for j in range(y, (y+h)):
        block(x,randint(y,y+h),z, h, m )

Build 3 y_tree_lines, these lines break at random locations just like natural tree leaves. Compare these tree leave lines with a solid green bar_y at the very left.

# three tree lines                                                                                                                                                                                              
Y_tree_line(20, 15, -10, 12, 8)   
Y_tree_line(22, 15, -10, 12, 8)   
Y_tree_line(24, 15, -10, 12, 8) 

# bar_y, at the left 
bar_y(1, 15, -10, 12, 8)

(pic, 4-3-3A)

treeN()

Let's use y_tree_line to build a natural looking tree:

# treeN, total height, h

def treeN(x,z,h):
    column(x,z,h, 22)

    for i in range(x-1, x+2):
        for k in range(z-1,z+2):
            Y_tree_line(i, (int(h/2)+2), k, int(h/2), 8)

Here, h is the total height of the tree, tree top has about half of the total height, h/2 might be a floating number, so I use type conversion int(h/2).

treeN(20, -10, 20)  
treeN(25, -10, 20) 
treeN(30, -10, 20)

(pic here)

results matching ""

    No results matching ""