• API
• FAQ
• Tools
• Trends
• Archive
daily pastebin goal
75%
SHARE
TWEET

# Untitled

a guest Jun 19th, 2017 51 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. #User-Defined Triangle
2. #Created By: Aaron Schendel
3. #October 2nd, 2010
4.
5. from graphics import *
6. from math import *
7. from time import sleep
8.
9.
10. def main():
11.     # Create Window
12.     win=GraphWin("User's Choice", 800,500) # What numbers are 800 and 500? Why did you use them.
13.     win.setBackground("lightblue")
14.     win.setCoords(0,0,13,10)
15.
16.     # Create and Label Coordinate Plane
17.     Line(Point(1,1),Point(1,8)).draw(win)
18.     Line(Point(1,1),Point(8,1)).draw(win)
19.     Text(Point(.75,.75),'(1,1)').draw(win)
20.     Text(Point(.5,8),'(1,8)').draw(win)
21.     Text(Point(8,.5),'(8,1)').draw(win)
22.
23.     # User Instructions
24.     instructions=Text(Point(4,.25),'Click on three points to make a triangle.')
25.     instructions.draw(win)
26.
27.     # Get User to enter Points
28.     input1=win.getMouse()
29.     input1.draw(win)
30.     input2=win.getMouse()
31.     input2.draw(win)
32.     input3=win.getMouse()
33.     input3.draw(win)
34.
35.     #Create Triangle
36.     triangle = Polygon((input1),(input2),(input3))
37.     triangle.draw(win)
38.
39.     # Use midpoints to label triangle sides/edit label size
40.     a = Line(input1, input2).getCenter()
41.     b = Line(input2, input3).getCenter()
42.     c = Line(input3,input1).getCenter()
43.
44.     atext = Text((a),'a')
45.     atext.setSize(18) # Same as before. What is 18, and why? What if you needed to change it for the ENTIRE system. 5 minutes. Now think of this, but 10,000 lines of it...
46.     atext.setTextColor("darkgreen")
47.     atext.draw(win)
48.     btext = Text((b),'b')
49.     btext.setSize(18)
50.     btext.setTextColor("darkgreen")
51.     btext.draw(win)
52.     ctext = Text((c),'c')
53.     ctext.setSize(18)
54.     ctext.setTextColor("darkgreen")
55.     ctext.draw(win)
56.
57.     # Use input points to label angles
58.     Atext = Text((input3),'A')
59.     Atext.setSize(18)
60.     Atext.setTextColor("red")
61.     Atext.draw(win)
62.     Btext = Text((input1),'B')
63.     Btext.setSize(18)
64.     Btext.setTextColor("red")
65.     Btext.draw(win)
66.     Ctext = Text((input2),'C')
67.     Ctext.setSize(18)
68.     Ctext.setTextColor("red")
69.     Ctext.draw(win)
70.
71.     # Quick Explanation
72.     explanation = Text(Point(1.7,9.5),'Dark Green Text = Side')
73.     explanation.setTextColor('darkgreen')
74.     explanation.draw(win)
75.
76.     explanation2 = Text(Point(1.32,9),'Red Text = Angle')
77.     explanation2.setTextColor('red')
78.     explanation2.draw(win)
79.
80.     # Get X and Y of the three inputs
81.     x1 = input1.getX()
82.     y1 = input1.getY()
83.     x2 = input2.getX()
84.     y2 = input2.getY()
85.     x3 = input3.getX()
86.     y3 = input3.getY()
87.
88.     # Figure out length of each side
89.     alength = sqrt((x2-x1)**2 + (y2-y1)**2)
90.     blength = sqrt((x3-x2)**2 + (y3-y2)**2)
91.     clength = sqrt((x1-x3)**2 + (y1-y3)**2)
92.
93.     # Figure out perimeter
94.     perimeter = alength + blength + clength
95.
96.     # Figure out area
97.     semiperimeter = perimeter / 2
98.     area = sqrt(semiperimeter*(semiperimeter-alength)*(semiperimeter-blength)*(semiperimeter-clength))
99.
100.     # Figure out angles
101.     aangle = (acos(((alength**2)-(blength**2)-(clength**2))/((-2)*blength*clength))) * (180/pi)
102.     bangle = (acos(((blength**2)-(alength**2)-(clength**2))/((-2)*alength*clength))) * (180/pi)
103.     cangle = (acos(((clength**2)-(blength**2)-(alength**2))/((-2)*blength*alength))) * (180/pi)
104.
105.     # Output
106.
107.     prop = Text(Point(10.5,9),'Triangle Properties')
108.     prop.setSize(22)
109.     prop.draw(win)
110.
111.     # Output side lengths
112.     sleep(1)
113.     sidelengths = Text(Point(9.7,8),'Side Lengths: ')
114.     sidelengths.setSize(18)
115.     sidelengths.draw(win)
116.
117.     sleep(.25)
118.     sidea = Text(Point(9.9,7.5),'Side a = ' + str(alength))
119.     sidea.setTextColor('darkgreen')
120.     sidea.draw(win)
121.     sleep(.25)
122.     sideb = Text(Point(9.9,7),'Side b = ' + str(blength))
123.     sideb.setTextColor('darkgreen')
124.     sideb.draw(win)
125.     sleep(.25)
126.     sidec = Text(Point(9.9,6.5),'Side c = ' + str(clength))
127.     sidec.setTextColor('darkgreen')
128.     sidec.draw(win)
129.
130.     # Ouput angle sizes
131.     sleep(1)
132.     anglesizes = Text(Point(9.6,5.8), 'Angle Sizes: ')
133.     anglesizes.setSize(18)
134.     anglesizes.draw(win)
135.
136.     sleep(.25)
137.     anglea = Text(Point(9.9,5.3), 'Angle A = ' + str(aangle))
138.     anglea.setTextColor('red')
139.     anglea.draw(win)
140.     sleep(.25)
141.     angleb = Text(Point(9.9,4.8), 'Angle B = ' + str(bangle))
142.     angleb.setTextColor('red')
143.     angleb.draw(win)
144.     sleep(.25)
145.     anglec = Text(Point(9.9,4.3), 'Angle C = ' + str(cangle))
146.     anglec.setTextColor('red')
147.     anglec.draw(win)
148.
149.     # Output perimeter
150.     sleep(1)
151.     perimeteroutput = Text(Point(9.3,3.1), ' Perimeter = ')
152.     perimeteroutput.setSize(18)
153.     perimeteroutput.draw(win)
154.
155.     perimeteroutput2 = Text(Point(11.6,3.1),perimeter)
156.     perimeteroutput2.draw(win)
157.
158.     # Output area
159.     sleep(1)
160.     areaoutput = Text(Point(9, 2),'Area = ')
161.     areaoutput.setSize(18)
162.     areaoutput.draw(win)
163.
164.     areaoutput2 = Text(Point(11,2),(area))
165.     areaoutput2.draw(win)
166.
167.     # Change user instructions
168.     instructions.setText('Click anywhere to exit.')
169.
170.
171.     # Get mouse click to close and end the program
172.     win.getMouse()
173.     win.close()
174.
175.
176.
177. main()
RAW Paste Data
Top