def draw_figure(point, angle, lenght, angle0, color): point_start = point for angle_step in range(0, 360 - angle0, angle0): vector = sd.get_vector(start_point=point, angle=angle_step+angle, length=lenght, width=3) vector.draw(color=color) point = vector.end_point sd.line(start_point=point, end_point=point_start, width=3, color=color)
def draw_branches(start_point, angle, length, delta): if length < 4: return v1 = sd.get_vector( start_point, angle=angle, length=length, ) v1.draw() next_point = v1.end_point x = int(30 / 100 * 40) y = int(length / 100 * 20) length = sd.random_number(length - y, length + y) delta = sd.random_number(delta - x, delta + x) next_length = int(0.75 * length) draw_branches( start_point=next_point, angle=angle + delta, length=next_length, delta=delta, ) draw_branches( start_point=next_point, angle=angle - delta, length=next_length, delta=delta, )
def draw_polygon(point, step, length, delta): next_point = point for angle in range(0, 300, step): v1 = sd.get_vector(start_point=next_point, angle=angle + delta, length=length, width=1) v1.draw(color=sd.COLOR_RED) next_point = v1.end_point sd.line(start_point=next_point, end_point=point, color=sd.COLOR_RED, width=1)
def redraw(self): angle = self.angle + self.adv_angle sd.line(start_point=self.old_point_start, end_point=self.old_point_end, color=sd.background_color, width=2) vector = sd.get_vector(start_point=self.base_point, angle=angle, length=self.length) vector.draw(color=self.color, width=2) self.old_point_end = vector.end_point self.old_point_start = copy.deepcopy(self.base_point)
def figure(point, leng, angle, number_of_points, color): new_point = point for i in range(0, number_of_points - 1): vector = sd.get_vector(new_point, angle * i, length=leng) vector.draw(color=color) new_point = vector.end_point sd.line(start_point=new_point, end_point=point, color=color)
def tree(tree_x_cor, tree_y_cor, color, tree_angle, branch_angle, branch_length, trunk_length, branch_width): import random def draw_branches(start_point, angle, length): if length < 3: return angle_delta = branch_angle delta_minus = angle_delta - (0.4 * angle_delta) delta_plus = angle_delta + (0.4 * angle_delta) random_angle_change = sd.random_number(a=delta_minus, b=delta_plus) length_delta = .75 length_minus = length_delta - (0.2 * length_delta) length_plus = length_delta + (0.2 * length_delta) random_length_change = random.random() * (length_minus - length_plus) + length_plus next_angle_right = angle - random_angle_change next_angle_left = angle + random_angle_change next_length = length * random_length_change branch_right = sd.get_vector(start_point=start_point, angle=next_angle_right, length=next_length, width=2) branch_right.draw(color=color) branch_left = sd.get_vector(start_point=start_point, angle=next_angle_left, length=next_length, width=2) branch_left.draw(color=color) next_point_right = branch_right.end_point next_point_left = branch_left.end_point draw_branches(start_point=next_point_right, angle=next_angle_right, length=next_length) draw_branches(start_point=next_point_left, angle=next_angle_left, length=next_length) sd.start_drawing() root_point = sd.get_point(x=tree_x_cor, y=tree_y_cor) trunk = sd.get_vector(start_point=root_point, angle=tree_angle, length=trunk_length, width=branch_width) trunk.draw(color=color) draw_branches(start_point=trunk.end_point, angle=tree_angle, length=branch_length)
def branch(point, angle, length): if length < 5: return v1 = sd.get_vector(start_point=point, angle=angle+30, length=length, width=3) v1.draw() v2 = sd.get_vector(start_point=point, angle=angle-30, length=length, width=3) v2.draw() next_point1 = v1.end_point next_point2 = v2.end_point a = sd.random_number(-40,40)/100 b = sd.random_number(80,120)/100 next_angle1 = angle + 30 + (30*a) next_angle2 = angle - 30 + (30*a) next_length = length*0.75*b branch(point=next_point1, angle=next_angle1, length=next_length) branch(point=next_point2, angle=next_angle2, length=next_length)
def any_shape(point, length, angle, width, side_change): angle_change = 360 // side_change for v in range(0, 360, angle_change): v = sd.get_vector(start_point=point, angle=angle, length=length, width=width) v.draw(color=color) point = v.end_point angle += angle_change
def tr(start_p, corn, side_len): side1 = sd.get_vector(start_point=start_p, angle=corn, length=side_len) side1.draw() sd.circle(center_position=start_p, radius=5) side2 = sd.get_vector(start_point=side1.end_point, angle=side1.angle + 120, length=side_len) side2.draw() sd.circle(center_position=side1.end_point, radius=5) side3 = sd.get_vector(start_point=side2.end_point, angle=side2.angle + 120, length=side_len) side3.draw() sd.circle(center_position=side2.end_point, radius=5)
def any_figure(number_of_sides, start_point, angle, length, color, width): sides = [] sides.append( sd.get_vector(start_point=start_point, angle=angle, length=length)) sides[0].draw(color=color, width=width) for i in range(1, number_of_sides, 1): sides.append( sd.get_vector(start_point=sides[i - 1].end_point, angle=angle + 360 * i / number_of_sides, length=length, width=3)) sides[i].draw(color=color, width=width) sd.line(start_point=start_point, end_point=sides[len(sides) - 1].end_point, color=color, width=width)
def draw_vector(point, angle, length, width): vector = sd.get_vector(start_point=point, angle=angle, length=length, width=width) vector.draw() return vector
def geometry(point, angles=3, length=100, color=COLOR_YELLOW): point_1 = point for angle in range(0, angles-1, 1): v = sd.get_vector(point, angle=angle * (360 // angles), length=length) point = v.end_point v.draw(color) sd.line(point_1, point, color=color)
def geometry(point, angle=30, length=100): point_1 = point for angles in range(0, n - 1, 1): v = sd.get_vector(point, angle=angles * (360 // n) + angle, length=length) point = v.end_point v.draw() sd.line(point_1, point)
def count_angle(start_point, zero_angle, side_length, count_sides): end_point = start_point angle_shift = int(360 / count_sides) for angle in range(0, 360 - angle_shift, angle_shift): v = sd.get_vector(start_point, angle + zero_angle, side_length) v.draw() start_point = v.end_point sd.line(start_point, end_point)
def draw_branches(start_point, angle, length): if length < 8: return v1 = sd.get_vector(start_point, angle, length) v1.draw() draw_branches(v1.end_point, angle - 35, length * 0.8) draw_branches(v1.end_point, angle + 35, length * 0.8) draw_branches(v1.end_point, angle, length * 0.8)
def draw_figure(point, angle, length, step, side): for line in range(side): v = sd.get_vector(start_point=point, angle=angle + line * step, length=length, width=2) v.draw() point = v.end_point
def pentagon(point_3, angle, color, length): v1 = sd.get_vector( start_point=point_3, angle=angle, length=length, ) l1 = sd.line(start_point=point_3, end_point=v1.end_point, color=color, width=1) v2 = sd.get_vector( start_point=v1.end_point, angle=angle + 72, length=length, ) l2 = sd.line(start_point=v1.end_point, end_point=v2.end_point, color=color, width=1) v3 = sd.get_vector( start_point=v2.end_point, angle=angle + 144, length=length, ) l3 = sd.line(start_point=v2.end_point, end_point=v3.end_point, color=color, width=1) v4 = sd.get_vector( start_point=v3.end_point, angle=angle + 216, length=length, ) l4 = sd.line(start_point=v3.end_point, end_point=v4.end_point, color=color, width=1) v5 = sd.get_vector( start_point=v4.end_point, angle=angle + 288, length=length, ) l5 = sd.line(start_point=v4.end_point, end_point=v5.end_point, color=color, width=1)
def pentagon(point, angle=0, length=200, color=sd.COLOR_YELLOW): v1 = sd.get_vector(start_point=point, angle=angle, length=length) v1.draw(color=color) v2 = sd.get_vector(start_point=v1.end_point, angle=angle + 72, length=length) v2.draw(color=color) v3 = sd.get_vector(start_point=v2.end_point, angle=angle + 144, length=length) v3.draw(color=color) v4 = sd.get_vector(start_point=v3.end_point, angle=angle + 216, length=length) v4.draw(color=color) v5 = sd.get_vector(start_point=v4.end_point, angle=angle + 288, length=length) v5.draw(color=color) v_corr = sd.line(start_point=v5.end_point, end_point=point, color=color)
def draw_hexagon(point_bottom_left, angle=0, length=100): width = 3 figure_angle = 360 / 6 v1 = None for i in range(6): if v1: v1 = sd.get_vector(start_point=v1.end_point, angle=angle + i * figure_angle, length=length, width=width) v1.draw() else: v1 = sd.get_vector(start_point=point_bottom_left, angle=angle, length=length, width=width) v1.draw()
def figure(point, tilt, length, sides): angle = 360 // sides point1 = point for angle_step in range(0, 360 - angle, angle): v1 = sd.get_vector(point, angle_step + tilt, length) v1.draw() point = v1.end_point sd.line(point1, point)
def grass(_x=1200): x = 0 while x < _x: point = sd.get_point(x=x, y=0) _vector = sd.get_vector(start_point=point, angle=sd.random_number(85, 95), length=sd.random_number(15, 25), width=sd.random_number(2, 3)) _vector.draw(color=(65, 155, 11)) x += sd.random_number(1, 4)
def tree(vector): if vector.length < 5: sd.circle(vector.end_point, radius=10, color=sd.COLOR_GREEN, width=0) return vector.draw(color=sd.COLOR_DARK_ORANGE) length = vector.length / 1.5 width = round(vector.width / 1.3) vector_1 = sd.get_vector(vector.end_point, angle=vector.angle - 30, length=length, width=width) vector_2 = sd.get_vector(vector.end_point, angle=vector.angle + 30, length=length, width=width) tree(vector_1) tree(vector_2)
def draw_branches(_start_point, _angle, _length, _delta=30): if _length < 10: return v1 = sd.get_vector(start_point=_start_point, angle=_angle, length=_length) v2 = sd.get_vector(start_point=_start_point, angle=_angle, length=_length) v1.draw() next_point = v1.end_point next_point2 = v2.end_point next_angle = _angle - _delta next_angle2 = _angle + _delta next_length = _length * .75 draw_branches(_start_point=next_point, _angle=next_angle, _length=next_length) draw_branches(_start_point=next_point2, _angle=next_angle2, _length=next_length)
def draw_figure(point, angle, length): _end_point = point for _ in range(n): v = sd.get_vector(start_point=point, angle=angle, length=length) v.draw() angle = angle + (360 / n) point = v.end_point sd.line(start_point=point, end_point=_end_point)
def hexagon(point=point3, angle=0, length=100): for next_angle in range(0, 360, 60): v = sd.get_vector(start_point=point, angle=angle + next_angle, length=length, width=3) v.draw() point = v.end_point
def fig(point, length, angle, angle1): for angle in range(angle, angle + 359, angle1): v1 = sd.get_vector(start_point=point, angle=angle, length=length, width=1) v1.draw() point = v1.end_point
def square(point=point1, angle=0, length=100): for next_angle in range(0, 360, 90): v = sd.get_vector(start_point=point, angle=angle + next_angle, length=length, width=3) v.draw() point = v.end_point
def figure(n, angle, point, length): for i in range(n): if i < n - 1: v = sd.get_vector(start_point=point, angle=angle+i*common(n), length=length, ) point = v.end_point v.draw() else: v = sd.line(start_point=point, end_point=first_point)
def draw_branch(point, angle, length, color): branch = sd.get_vector( start_point=point, angle=angle, length=length, ) branch.draw(color=color) return branch.end_point
def figures(point, angle, length, step): start_point = point step = step for tilt_angle in range(0, 360 - step, step): v = sd.get_vector(start_point=start_point, angle=angle + tilt_angle, length=length) v.draw() start_point = v.end_point sd.line(start_point=v.end_point, end_point=point)
# pip install simple draw import simple_draw as sd start_point = sd.get_point(300, 10) my_angle = 90 my_length = 200 vector = sd.get_vector( start_point = start_point, angle=my_angle, length=my_length, width=6) vector.draw() start_point_2 = vector.end_point my_angle_2 = my_angle - 20 my_length_2 = my_length * .7 vector_2 = sd.get_vector( start_point = start_point_2, angle=my_angle_2, length=my_length_2, width=6) vector_2.draw() start_point_3 = vector.end_point my_angle_3 = my_angle + 20 my_length_3 = my_length * .7 vector_3 = sd.get_vector( start_point = start_point_3, angle=my_angle_3, length=my_length_3, width=6) vector_3.draw() sd.pause()