From bb5753047956f2293d26578c907c0a62a5033e2e Mon Sep 17 00:00:00 2001 From: Greg Snyder Date: Wed, 22 Apr 2020 15:56:21 -0700 Subject: [PATCH] Add initial Sierpinski triangle example. --- compile.py | 20 ++ examples/sierpinski-triangle/credit.txt | 1 + examples/sierpinski-triangle/extra/starter.py | 86 +++++++ examples/sierpinski-triangle/index.html | 21 ++ examples/sierpinski-triangle/soln.py | 220 ++++++++++++++++++ examples/sierpinski-triangle/title.txt | 1 + examples/sierpinski-triangle/trishot.png | Bin 0 -> 66606 bytes 7 files changed, 349 insertions(+) create mode 100644 examples/sierpinski-triangle/credit.txt create mode 100755 examples/sierpinski-triangle/extra/starter.py create mode 100644 examples/sierpinski-triangle/index.html create mode 100755 examples/sierpinski-triangle/soln.py create mode 100644 examples/sierpinski-triangle/title.txt create mode 100644 examples/sierpinski-triangle/trishot.png diff --git a/compile.py b/compile.py index 2f0af43..068467a 100644 --- a/compile.py +++ b/compile.py @@ -54,6 +54,7 @@ def complile_example(self, dir_name): out_path = os.path.join('en', dir_name, 'index.html') self.compile_template(out_path, data) self.copy_all_images(dir_name) + self.copy_all_extra(dir_name) return data['title'] def copy_all_images(self, dir_name): @@ -64,6 +65,21 @@ def copy_all_images(self, dir_name): if self.is_img(file_type): self.copy_file(in_path, out_path, file_name) + def copy_all_extra(self, dir_name): + out_path = os.path.join('en', dir_name, 'extra') + in_path = os.path.join('examples', dir_name, 'extra') + try: + extras = os.listdir(in_path) + except: + extras = [] + + if len(extras) > 0: + self.make_path(os.path.join(out_path, extras[0])) + for file_name in extras: + file_type = file_name.split('.')[-1].lower() + if self.is_img(file_type) or self.is_py(file_type): + self.copy_file(in_path, out_path, file_name) + def copy_file(self, in_path, out_path, file_name): source = os.path.join(in_path, file_name) destination = os.path.join(out_path, file_name) @@ -87,6 +103,10 @@ def is_img(self, file_type): if file_type == 'svg': return True return False + def is_py(self, file_type): + if file_type == 'py': return True + return False + def load_part(self, dir_name, file_name): in_path = os.path.join('examples', dir_name) return open(os.path.join(in_path, file_name)).read() diff --git a/examples/sierpinski-triangle/credit.txt b/examples/sierpinski-triangle/credit.txt new file mode 100644 index 0000000..cd0db79 --- /dev/null +++ b/examples/sierpinski-triangle/credit.txt @@ -0,0 +1 @@ +Program written by GregS. diff --git a/examples/sierpinski-triangle/extra/starter.py b/examples/sierpinski-triangle/extra/starter.py new file mode 100755 index 0000000..9c064d1 --- /dev/null +++ b/examples/sierpinski-triangle/extra/starter.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python3 + +""" +Sierpinski Triangle + +This program demonstrates drawing a famous and interesting shape. +""" + +import tkinter + + +# How big to make our window, as a percentage of the screen size +WINDOW_SCREEN_PERCENTAGE = 85 + + +def draw_triangle(canvas, xsize, ysize): + """ + We are given a canvas to draw on, and the size of that canvas. + + We will kick off drawing a Sierpinski triangle. + + + NOTE: the body of this function should be replaced with your code, + this is just examples of drawing. + """ + + # Note that in tkinter the upper left is (0, 0) and coordinates grow + # down and to the right. + + # An example of how to draw a triangle on the canvas + p1 = [0, 50] # x, y + p2 = [29, 0] + p3 = [58, 50] + canvas.create_polygon(p1, p2, p3, fill="red", width=0) + + # Some other things you can draw, which are not necessarily needed for + # this problem: + + canvas.create_line([0, ysize / 4], [xsize - 1, 0], fill="blue", width="10") + + canvas.create_text([300, 50], fill="#20f040", font="Arial 20", text="Some text") + + +def setup_graphics(): + """ + This function does all the graphics setup. We are using tkinter. + It returns the window it made (which the caller should simply call + mainloop() on), a canvas to draw on, and the dimensions of that + canvas. + """ + + win = tkinter.Tk() + win.title("Sierpinski Triangle") + + # To keep things simpler, make our window non-resizable, and some + # percentage of the screen dimension. We try to make the xsize 15% + # bigger than the ysize just so there is less wasted space around + # our triangle. This 15% is roughly sqrt(3)/2 . + ysize = int(win.winfo_screenheight() * WINDOW_SCREEN_PERCENTAGE / 100.0) + xsize = int(min(ysize * 1.15, + win.winfo_screenwidth() * WINDOW_SCREEN_PERCENTAGE / 100.0)) + win.geometry("{}x{}".format(xsize, ysize)) + win.resizable(False, False) + + frame = tkinter.Frame(win) + frame.pack(fill=tkinter.BOTH, expand=True) + canvas = tkinter.Canvas(frame, width=xsize, height=ysize, + bg="white", border=0, highlightthickness=0) + canvas.pack() + win.update() + + return win, canvas, xsize, ysize + + +def main(): + """ + Draw a Sierpinski Triangle. + """ + + win, canvas, xsize, ysize = setup_graphics() + draw_triangle(canvas, xsize, ysize) + win.mainloop() + + +if __name__ == "__main__": + main() diff --git a/examples/sierpinski-triangle/index.html b/examples/sierpinski-triangle/index.html new file mode 100644 index 0000000..2eacaf9 --- /dev/null +++ b/examples/sierpinski-triangle/index.html @@ -0,0 +1,21 @@ +

+ Make + a Sierpinski + Triangle ! A Sierpinski triangle is a super cool shape. It can + be made by starting with an equilateral triangle, and splitting it + into 4 equal smaller triangles, removing or coloring the middle of + these smaller triangles, and then repeating the process on the + remaining three triangles. You keep doing this process forever! In + this program, you can stop after some number of levels, or until + your triangles get too small. +

+ +

Write a program that produces a Sierpinski triangle. Show your work + by taking a screen capture of it, for example:

+

+
+ +
+

Starter code is provided which sets up the + graphics for you, and demonstrates how to draw a triangle.

+

diff --git a/examples/sierpinski-triangle/soln.py b/examples/sierpinski-triangle/soln.py new file mode 100755 index 0000000..2f765dc --- /dev/null +++ b/examples/sierpinski-triangle/soln.py @@ -0,0 +1,220 @@ +#!/usr/bin/env python3 + +""" +Sierpinski Triangle +By GregS + +This program demonstrates drawing a famous and interesting shape using +recursion. It starts with an equilateral triangle, and at each level +breaks the triangle into four smaller equilateral triangles, colors the +middle one, and recurses on the other three. + +""" + +import tkinter +import math + +# How much empty space to leave around the biggest triangle in pixels +TRIANGLE_BORDER = 20 + +# How big to make our window, as a percentage of the screen size +WINDOW_SCREEN_PERCENTAGE = 85 + +# How big the smallest triangle's edge can be, in pixels +MIN_TRIANGLE = 9 + + +def midpoint(p1, p2): + """ + Takes two points, each of which is [x, y] coordinates, and returns a + point halfway between them. + """ + return [(p1[0] + p2[0]) / 2.0, (p1[1] + p2[1]) / 2.0] + + +def distance(p1, p2): + """ + Takes two points, each of which is [x, y] coordinates, and returns + the distance between them. + """ + return math.sqrt((p2[0] - p1[0]) ** 2 + (p2[1] - p1[1]) ** 2) + + +def tri_color(level): + """ + Given a level number, returns what color to fill the triangle with. + Takes a zero-based level number, and returns a color string suitable + for tkinter. + """ + + # These colors are arbitrary, but have the same lightness and + # saturation, just different hues, so they "go together". + tri_colors = ["#f76d6d", "#f76dd4", "#b26df7", "#6d90f7", + "#6df7f7", "#6df790", "#b2f76d", "#f7d46d"] + + return tri_colors[level % len(tri_colors)] + + +def draw_tri_inner(canvas, level, p1, p2, p3): + """ + Given a canvas to draw on, a level indicating how many times we've + been called, and three points (p1, p2, and p3) which form an + equilateral triangle, break this triangle into four equal + equilateral triangles, color in the middle one, and recursively call + ourselves to decompose and color the other three triangles. + + This function should only be called by draw_triangle() , which will + construct the initial triangle points p1, p2, and p3 (each of which + are [x,y] coordinates), and pass in a level of 0. "level" is only + used for choosing triangle colors. + """ + + # We are given points p1, p2, p3 , which make an equilateral triangle. + # We break this triangle down into four equilateral triangles, s0, s1, + # s2, and s3 as follows: + # + # p2 + # /\ + # / \ + # / \ + # / s2 \ + # / \ + # p4 /----------\ p5 + # /\ /\ + # / \ s0 / \ + # / \ / \ + # / \ / \ + # / s1 \ / s3 \ + # /__________\/__________\ + # p1 p6 p3 + # + # Each new point (p4, p5, and p6) is at the midpoint of the side it + # is on. + # + # On this level, we only color in s0, the middle triangle with points + # (p4, p5, p6), and then call ourselves recursively on each of triangles + # s1, s2, and s3, in turn breaking them up and coloring each of them + # this same way. Each time we add one to the level to get a different + # color for each size of triangle. + + p4 = midpoint(p1, p2) + p5 = midpoint(p2, p3) + p6 = midpoint(p1, p3) + + # We stop if the triangle we were asked to color is too small + if distance(p4, p5) < MIN_TRIANGLE: + return + + new_color = tri_color(level) + + canvas.create_polygon(p4, p5, p6, fill=new_color, width=0) + + draw_tri_inner(canvas, level + 1, p1, p4, p6) # s1 + draw_tri_inner(canvas, level + 1, p4, p2, p5) # s2 + draw_tri_inner(canvas, level + 1, p6, p5, p3) # s3 + + +def draw_triangle(canvas, xsize, ysize): + """ + We are given a canvas to draw on, and the size of that canvas. + + We will figure out the biggest equilateral triangle that fits on it, + with a little border, and kick off drawing a Sierpinski triangle. + + We only draw the largest triangle here, in black, and then call + draw_tri_inner() with the points of that largest triangle. That + function will recursively break up this triangle and color it, as + described there. + """ + + # Note that in tkinter the upper left is (0, 0) and coordinates grow + # down and to the right. + # + # We are drawing an equilateral triangle (p1,p2,p3), which looks like: + # + # p2 (triedge / 2, 0) + # . + # /.\ + # / . \ + # / . \ + # / . \ + # / . \ + # /_____.___ _\ + # (0, triheight) p1 a p3 (triedge, triheight) + # + # + # The dots are an altitude of this triangle (which we do not draw, + # just to explain here). Angle (p2,p1,p3) is 60 degrees (it's an + # equilateral triangle), angle (p1,a,p2) is 90 degrees, leaving + # angle (a,p2,p1) as 30 degrees. This means that the height (p2,a) + # is the edge length (p1,p2) * sqrt(3) / 2 . + # + # Calculate the triangle edge length and height, which are all we + # need to calculate our vertices (see picture above). The triangle + # has to fit in our xsize by ysize canvas. This is for the top + # (first) triangle, and so should take up as much of the canvas as + # it can. The ysize is scaled down by sqrt(3)/2 as we have to + # multiply it by that same amount to find the height. We round + # triedge to a multiple of 32 so that it can be evenly divided by 2 + # a number of times. + + b = TRIANGLE_BORDER + triedge = int(min(xsize, ysize / (math.sqrt(3.0) / 2.0)) - b * 2) + triedge = triedge - triedge % 32 + triheight = int(triedge * math.sqrt(3.0) / 2.0) + + # These are the points from our picture above, with a border added in + p1 = [0 + b, triheight + b] + p2 = [triedge / 2 + b, 0 + b] + p3 = [triedge + b, triheight + b] + + # Our triangle is black, every other level will be a color + canvas.create_polygon(p1, p2, p3, fill="black", width=0) + + draw_tri_inner(canvas, 0, p1, p2, p3) + + +def setup_graphics(): + """ + This function does all the graphics setup. We are using tkinter. + It returns the window it made (which the caller should simply call + mainloop() on), a canvas to draw on, and the dimensions of that + canvas. + """ + + win = tkinter.Tk() + win.title("Sierpinski Triangle") + + # To keep things simpler, make our window non-resizable, and some + # percentage of the screen dimension. We try to make the xsize 15% + # bigger than the ysize just so there is less wasted space around + # our triangle. This 15% is roughly sqrt(3)/2 , see draw_triangle() + # for an explanation of why this ratio. + ysize = int(win.winfo_screenheight() * WINDOW_SCREEN_PERCENTAGE / 100.0) + xsize = int(min(ysize * 1.15, + win.winfo_screenwidth() * WINDOW_SCREEN_PERCENTAGE / 100.0)) + win.geometry("{}x{}".format(xsize, ysize)) + win.resizable(False, False) + + frame = tkinter.Frame(win) + frame.pack(fill=tkinter.BOTH, expand=True) + canvas = tkinter.Canvas(frame, width=xsize, height=ysize, + bg="white", border=0, highlightthickness=0) + canvas.pack() + win.update() + + return win, canvas, xsize, ysize + + +def main(): + """ + Draw a Sierpinski Triangle. + """ + + win, canvas, xsize, ysize = setup_graphics() + draw_triangle(canvas, xsize, ysize) + win.mainloop() + + +if __name__ == "__main__": + main() diff --git a/examples/sierpinski-triangle/title.txt b/examples/sierpinski-triangle/title.txt new file mode 100644 index 0000000..ab0f011 --- /dev/null +++ b/examples/sierpinski-triangle/title.txt @@ -0,0 +1 @@ +Sierpinski Triangle diff --git a/examples/sierpinski-triangle/trishot.png b/examples/sierpinski-triangle/trishot.png new file mode 100644 index 0000000000000000000000000000000000000000..16a39026de560c8993921a6ecc50ea84009b7b98 GIT binary patch literal 66606 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

eL9(I4CgnZ1i&gBuC*sK>1erJJhl32t!+R2 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 literal 0 HcmV?d00001