Created
July 24, 2018 03:25
-
-
Save mbround18/12639d3ff15fe51bc233d98057b6207e to your computer and use it in GitHub Desktop.
cyb130 week2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import time | |
import turtle | |
import math | |
import random | |
# Set the background color | |
screen = turtle.Screen() | |
screen.bgcolor("skyblue") | |
# Define a funtion to draw and fill a rectangle with the given | |
# dimensions and color | |
def drawRectangle(t, width, height, color): | |
t.fillcolor(color) | |
t.begin_fill() | |
t.forward(width) | |
t.left(90) | |
t.forward(height) | |
t.left(90) | |
t.forward(width) | |
t.left(90) | |
t.forward(height) | |
t.left(90) | |
t.end_fill() | |
# Define a function to draw and fill an equalateral right | |
# triangle with the given hypotenuse length and color. This | |
# is used to create a roof shape. | |
def drawTriangle(t, length, color): | |
t.fillcolor(color) | |
t.begin_fill() | |
t.forward(length) | |
t.left(135) | |
t.forward(length / math.sqrt(2)) | |
t.left(90) | |
t.forward(length / math.sqrt(2)) | |
t.left(135) | |
t.end_fill() | |
# Define a function to draw and fill a parallelogram, used to | |
# draw the side of the house | |
def drawParallelogram(t, width, height, color): | |
t.fillcolor(color) | |
t.begin_fill() | |
t.left(30) | |
t.forward(width) | |
t.left(60) | |
t.forward(height) | |
t.left(120) | |
t.forward(width) | |
t.left(60) | |
t.forward(height) | |
t.left(90) | |
t.end_fill() | |
# Define a function to draw four sun rays of the given length, | |
# for the sun of the given radius. The turtle starts in the | |
# center of the circle. | |
def drawFourRays(t, length, radius): | |
for i in range(4): | |
t.penup() | |
t.forward(radius) | |
t.pendown() | |
t.forward(length) | |
t.penup() | |
t.backward(length + radius) | |
t.left(90) | |
def create_turtle(): | |
# Create our turtle | |
turt = turtle.Turtle() | |
turt.color("black") | |
turt.shape("turtle") | |
turt.speed(10) | |
return turt | |
def draw_house(t: any, baseX: int, baseY: int): | |
thicc = random.randrange(110, 130) | |
# Create our turtle | |
george = t | |
# Draw and fill the front of the house | |
george.penup() | |
george.goto(-150 + baseX, -120 + baseY) | |
george.pendown() | |
drawRectangle(george, 100, 110, "blue") | |
# Draw and fill the front door | |
george.penup() | |
george.goto(-120 + baseX, -120 + baseY) | |
george.pendown() | |
drawRectangle(george, 40, 60, "lightgreen") | |
# Draw front window | |
george.penup() | |
george.goto(-100 + baseX, -40 + baseY) | |
george.pendown() | |
drawRectangle(george, 40, 20, "brown") | |
# Front roof | |
george.penup() | |
george.goto(-150 + baseX, -10 + baseY) | |
george.pendown() | |
drawTriangle(george, 100, "magenta") | |
# Side of the house | |
george.penup() | |
george.goto(-50 + baseX, -120 + baseY) | |
george.pendown() | |
drawParallelogram(george, 60, 110, "yellow") | |
# Window | |
george.penup() | |
george.goto(-30 + baseX, -60 + baseY) | |
george.pendown() | |
drawParallelogram(george, 20, 30, "brown") | |
# Side roof | |
george.penup() | |
george.goto(-50 + baseX, -10 + baseY) | |
george.pendown() | |
george.fillcolor("orange") | |
george.begin_fill() | |
george.left(30) | |
george.forward(60) | |
george.left(105) | |
george.forward(100 / math.sqrt(2)) | |
george.left(75) | |
george.forward(60) | |
george.left(105) | |
george.forward(100 / math.sqrt(2)) | |
george.left(45) | |
george.end_fill() | |
# Bring the turtle down to the front door, and we're done! | |
george.penup() | |
george.goto(-100 + baseX, -150 + baseY) | |
george.left(90) | |
house_plot = [-2, -1, 0, 1] | |
for i in house_plot: | |
builder = create_turtle() | |
draw_house(builder, i * -100, i * -100) | |
builder = create_turtle() | |
draw_house(builder, i * -100 + 400, i * -100) | |
builder = create_turtle() | |
draw_house(builder, i * -100 + 200, i * -100) | |
builder = create_turtle() | |
draw_house(builder, i * -100 - 200, i * -100) | |
builder = create_turtle() | |
draw_house(builder, i * -100 - 400, i * -100) | |
builder.penup() | |
builder.goto(-100, -300) | |
builder.pendown() | |
builder.write("Michael_Bruno_20180723_CYB130", False, 'left') | |
builder.penup() | |
builder.goto(500, 500) | |
builder.screen.mainloop() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment