Rename files, add headers, fix typos in 13
This commit is contained in:
parent
a6b4a427e0
commit
954069159a
8 changed files with 31 additions and 2 deletions
49
thinkcspy/Chapter-16-Exercises/Problem4_mountain.py
Normal file
49
thinkcspy/Chapter-16-Exercises/Problem4_mountain.py
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
# Runestone.Academy thinkcspy course
|
||||
# Chapter 16
|
||||
# Problem 4
|
||||
|
||||
import turtle
|
||||
import random
|
||||
|
||||
|
||||
def drawTriangle(points,color,myTurtle):
|
||||
myTurtle.fillcolor(color)
|
||||
myTurtle.up()
|
||||
myTurtle.goto(points[0][0],points[0][1])
|
||||
myTurtle.down()
|
||||
myTurtle.begin_fill()
|
||||
myTurtle.goto(points[1][0],points[1][1])
|
||||
myTurtle.goto(points[2][0],points[2][1])
|
||||
myTurtle.goto(points[0][0],points[0][1])
|
||||
myTurtle.end_fill()
|
||||
|
||||
|
||||
def getMid(p1, p2, delta):
|
||||
return ( (((p1[0]+p2[0]) / 2) + random.uniform(-delta, delta)),
|
||||
(((p1[1] + p2[1]) / 2) + random.uniform(-delta, delta)))
|
||||
|
||||
|
||||
def fractalMnt(points,degree,myTurtle):
|
||||
colormap = ['floralwhite','brown','darkgoldenrod','olive','maroon']
|
||||
|
||||
drawTriangle(points,colormap[degree],myTurtle)
|
||||
|
||||
if degree > 0:
|
||||
mid1 = getMid(points[0], points[1], 10)
|
||||
mid2 = getMid(points[0], points[2], 10)
|
||||
mid3 = getMid(points[1], points[2], 10)
|
||||
|
||||
fractalMnt([points[0], mid1, mid2], degree-1, myTurtle)
|
||||
fractalMnt([points[1], mid1, mid3], degree-1, myTurtle)
|
||||
fractalMnt([points[2], mid3, mid2], degree-1, myTurtle)
|
||||
fractalMnt([mid1, mid3, mid2], degree-1, myTurtle)
|
||||
|
||||
|
||||
def main():
|
||||
myTurtle = turtle.Turtle()
|
||||
myWin = turtle.Screen()
|
||||
myPoints = [[-100,-50],[0,100],[100,-50]]
|
||||
fractalMnt(myPoints,4,myTurtle)
|
||||
myWin.exitonclick()
|
||||
|
||||
main()
|
||||
Loading…
Reference in a new issue