Kernel: Python 3 (system-wide)
In [0]:
start()for i in range(4): draw_forward(1) rotate_left(90)
In [79]:
import matplotlib.pyplot as plt import numpy as np # Function definitions def start(): state[0] = 0 state[1] = 0 state[2] = 0 state[-1] = 0 fig = plt.figure(figsize=(4,4)) ax = fig.add_subplot(111) ax.set_aspect('equal', adjustable='box') def draw_forward(dis): x = state[0] y = state[1] angle = state[2] state[0] = x + np.cos(angle) * dis state[1] = y + np.sin(angle) * dis plt.plot([x, state[0]], [y, state[1]], color="black", linewidth=2) def move_forward(dis): x = state[0] y = state[1] angle = state[2] state[0] = x + np.cos(angle) * dis state[1] = y + np.sin(angle) * dis def draw_back(dis): x = state[0] y = state[-1] angle = state[2] state[0] = x + np.cos(angle) * dis state[1] = y + np.sin(angle) * dis plt.plot([x, state[0]], [y, state[1]], color="black", linewidth=2) def rotate_left(theta): state[2] = state[2] + theta * np.pi / 180 def rotate_right(theta): state[2] = state[2] - theta * np.pi / 180 def draw_shape(n, f): for i in range(n): draw_forward(f) rotate_left(360/n) def draw_square(): for i in range(4): draw_forward(1) rotate_left(90) state = [0, 0, 0]#
In [49]:
# Example: draw a unit square start() draw_forward(1) rotate_left(90) draw_forward(1) draw_forward(1) rotate_left(90) draw_forward(1) draw_forward(1) rotate_left(90) draw_forward(1) draw_forward(1) rotate_left(90) draw_forward(1)
Out[49]:
In [53]:
start() draw_forward(1) rotate_left(60) draw_forward(1) draw_forward(1) rotate_left(60) draw_forward(1) draw_forward(1) rotate_left(60) draw_forward(1) draw_forward(1) rotate_left(60) draw_forward(2) rotate_left(60) draw_forward(2) rotate_left(60) draw_forward(1)
Out[53]:
In [54]:
start() for i in range(8): draw_forward(1) rotate_left(45)
Out[54]:
In [57]:
start() for i in range(5): draw_forward(1) rotate_right(72)
Out[57]:
In [59]:
for i in range (5): print(i)
Out[59]:
0
1
2
3
4
In [60]:
start() draw_shape()
Out[60]:
number of sides:
In [109]:
start() for i in range(5): draw_square() rotate_left(72)
Out[109]:
In [103]:
start() draw_shape(4) rotate_left(72) draw_shape(4) rotate_left(72) draw_shape(4) rotate_left(72) draw_shape(4) rotate_left(72) draw_shape(4) rotate_left(72)
Out[103]:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/tmp/ipykernel_915/1699819010.py in <module>
1 start()
----> 2 draw_shape(4)
3 rotate_left(72)
4 draw_shape(4)
5 rotate_left(72)
TypeError: draw_shape() missing 1 required positional argument: 'f'
In [124]:
start() for i in range(10): draw_shape(100, .05) move_forward(2.5) rotate_left(36)
Out[124]:
In [108]:
start() draw_shape(100, .05) move_forward(2.5) rotate_left(36) draw_shape(100, .05) draw_shape(100, .05) move_forward(2.5) rotate_left(36) draw_shape(100, .05) draw_shape(100, .05) move_forward(2.5) rotate_left(36) draw_shape(100, .05) draw_shape(100, .05) move_forward(2.5) rotate_left(36) draw_shape(100, .05) draw_shape(100, .05) move_forward(2.5) rotate_left(36) draw_shape(100, .05) draw_shape(100, .05) move_forward(2.5) rotate_left(36) draw_shape(100, .05) draw_shape(100, .05) move_forward(2.5) rotate_left(36) draw_shape(100, .05) draw_shape(100, .05) move_forward(2.5) rotate_left(36) draw_shape(100, .05) draw_shape(100, .05) move_forward(2.5) rotate_left(36) draw_shape(100, .05) draw_shape(100, .05) move_forward(2.5) rotate_left(36) draw_shape(100, .05)
Out[108]:
In [118]:
start() for i in range (10): draw_shape(100, .05) move_forward(2.5) rotate_left(36) draw_shape(100, .05)
Out[118]:
In [131]:
start() draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) rotate_right(180) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) rotate_right(180) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) rotate_right(180) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) rotate_right(180) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) rotate_right(180) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60)
Out[131]:
In [134]:
start() for i in range (6): draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) draw_forward(1) rotate_right(120) draw_forward(1) rotate_left(60) draw_forward(1) rotate_left(60) rotate_right(180)
Out[134]:
In [0]: