0% found this document useful (0 votes)
8 views

04_visual_intro_functions

The document outlines a method for drawing various shapes using functions in a programming context, emphasizing the importance of reusability and modularity in code. It describes how to create regular shapes like houses and apartments through defined functions such as draw_triangle, draw_rect, and draw_flat. The document also introduces parametric functions to allow for flexibility in the number of floors or features in the drawings.

Uploaded by

rdkdeniz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

04_visual_intro_functions

The document outlines a method for drawing various shapes using functions in a programming context, emphasizing the importance of reusability and modularity in code. It describes how to create regular shapes like houses and apartments through defined functions such as draw_triangle, draw_rect, and draw_flat. The document also introduces parametric functions to allow for flexibility in the number of floors or features in the drawings.

Uploaded by

rdkdeniz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

How to draw this shape?

I. Lines between coordinates. II. Moving pen from a start point. Drawing regular shapes

(x2, y2)
Turn angle x

(x3, y3)
(x1, y1) (x1, y1)

(x4, y4) (x5, y5)


How to draw this shape?
Drawing regular shapes def draw_house():
draw_rect()
draw_triangle()
def draw_triangle():
______
______
def draw_flat():
draw_rect()

def draw_roof():
def draw_rect(): draw_triangle()
______
______ def draw_house():
draw_flat()
draw_roof()
Reusing code in different places
Functions

def draw_triangle():
______
______
def draw_rect():
______
______

def draw_flat():
draw_rect() def draw_house(): def draw_apartment_3(): def draw_apartment_5():
draw_flat() draw_flat() draw_flat()
def draw_roof():
draw_roof() draw_flat() draw_flat()
draw_triangle()
draw_flat() draw_flat()
draw_roof() draw_flat()
draw_flat()
draw_roof()
Assume drawings are from ground to upwards

draw_roof() draw_flat() draw_house() draw_apartment_3() draw_castle()

… … draw_flat() draw_flat() draw_apartment_3()


draw_roof() draw_flat() move to right()
draw_house() draw_flat()
draw_flat()
draw_apartment_3() draw_roof()
move to right()
draw_flat()
draw_apartment_3()
draw_flat()
draw_flat()
draw_roof()
draw_apartment_3
draw_apartment_3
draw_apartment_3 draw_apartment_2
draw_apartment_2
draw_house

draw_castle() draw_castle() draw_castle_2()

draw_apartment3() draw_apartment_3() draw_apartment_3()


move to right move to right move to right
draw_apartment_2()
draw_flat() move to right
draw_flat() draw_apartment_2() draw_house()
draw_roof() move to right
draw_apartment_2()
move to right move to right move to right
draw_apartment_3() draw_apartment_3() draw_apartment_3()
apartment(x)

apartment_3()
vs

apartment(2) apartment(5)
apartment_5() apartment(3)
Let’s make it parametric.
Functions Assume that the drawings are from ground to draw_apartment(1)
upwards
def draw_triangle():
______
______
draw_apartment(2)
def draw_rectangle():
______
flat_count ?
______

def draw_flat():
draw_rect()
def draw_apartment(flat_count):
def draw_roof(): draw_apartment(3)
draw_triangle() for i in range(flat_count):
draw_flat()
draw_roof()
draw_castle_2() draw_castle_2()
draw_apartment_3() draw_apartment(3)
move to right move to right
draw_apartment_2() draw_apartment(2)
move to right move to right
draw_house() draw_apartment(1)
move to right move to right
draw_apartment_2() draw_apartment(2)
move to right move to right
draw_apartment_3() vs draw_apartment(3)

draw_apartment_3() draw_apartment()
draw_apartment_2()
draw_house()
Abstraction, Reusability, Modularity
draw_triangle()
or
draw_roof()

draw_rect()
or
draw_flat()
draw_street_view()

draw_house()
draw_apartment(flat_count)

draw_castle() draw_church()
9
We can deal with more complex and higher level structures or
problems

You might also like