#### ======= HW4 template ======= ####
from graphics import *
from time import *
import math
import random
# draw cloud on the left and right side of the sky based on the points using function. this function should return alist of circles.
def draw_cloud(win, x1,x2,y1,y2):
cloud_list = []
for i in range(11):
x = random.randint(x1, x2)
y = random.randint(y1, y2)
p = Point(x,y)
cloud = Circle(p,2)
cloud.setFill("white")
cloud.setOutline("white")
cloud.draw(win)
cloud_list.append(cloud)
return cloud_list
# draw the trunk of the tree with two points as a rectangle, calculate the circle above the tree trunk.
def draw_tree(win, p1, p2):
# drawing rectangle as trunk of the tree.
# finding width and height of the rectangle.
# finding the center point of the circle.
# drawing the circle on top of the tree trunk
def main():
# creating the graphic window
win = GraphWin("Blue sky and green field!", 800, 600)
win.setCoords(0, 0, 40, 30)
# set the background color (width is 40, height is 30)
BackGround = Rectangle(Point(0,15), Point(40, 30))
BackGround.setFill("light blue")
BackGround.draw(win)
# set the Ground color
Ground = Rectangle(Point(0,0) , Point(40, 15))
Ground.setFill("light Green")
Ground.draw(win)
# draw the sun
sun = Circle(Point(20,25), 2)
sun.setFill("Yellow")
sun.setOutline("Yellow")
sun.draw(win)
# draw the mountain1
Mountain1 = Polygon(Point(0,15), Point(15, 28), Point(30,15))
Mountain1.setFill("dark green")
Mountain1.draw(win)
# draw the mountain2
Mountain2 = Polygon(Point(10,15), Point(23,26), Point(40,15))
Mountain2.setFill("dark green")
Mountain2.draw(win)
# === call draw_cloud function for the left side of the sky ===
m1 = draw_cloud(win, 5,10,20,21)
# === call draw_cloud function for the right side of the sky ===
m2 = draw_cloud(win, 24,29,22,23)
# === set text for asking user to click a point ===
pntMsg = Point(20, 29)
txtMsg = Text(pntMsg, "Please click the left bottom point of the tree trunk.")
txtMsg.setStyle("bold")
txtMsg.setTextColor("red")
txtMsg.draw(win)
# === get the lower point from user ===
# TODO: get point p1
# === change the text to ask user to click another point ===
txtMsg.setText("Now click the upper right point of the tree trunk.")
# === get the upper point from user ===
# TODO: get point P2
# === call function to draw the tree ===
draw_tree(win, p1, p2)
# === change the text inside text box ===
txtMsg.setText("Please click a button to change views.")
# === View button ===
button_1 = Rectangle(Point(2,3), Point(6, 5))
button_1.setFill("yellow")
button_1.draw(win)
ViewMsg = Text(Point(4, 4), "Views")
ViewMsg.setStyle("bold")
ViewMsg.setTextColor("black")
ViewMsg.draw(win)
# === Wind buttton ===
button_2 = Rectangle(Point(7,3), Point(11, 5))
# TODO: details of button 2
# === Exit Button ===
button_3 = Rectangle(Point(12,3), Point(16, 5))
# TODO: details of button 3
# check if user clicks any of the three buttons
while True:
pClick = win.getMouse()
if ... : # conditions for pClick on button 3
break
elif ... : # conditions for pClick on button 1
# TODO: Change scenes
elif ... : # conditions for pClick on button 2
# TODO: Move clouds
txtMsg.setText("Good Bye!")
win.close()
main()
版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。