import matplotlib.pyplot as plt import numpy as np n = 100000 l = [10, 26, 33, 30] alpha_0 = np.ones(n) * 90 alpha_1 = np.random.uniform(0, 120, n) alpha_2 = np.random.uniform(-60, 60, n) alpha_3 = np.random.uniform(-100, 20, n) alpha = np.vstack((alpha_0, alpha_1, alpha_2, alpha_3)) * (np.pi / 180) start_x = 0 start_y = 0 x0 = np.zeros(n) y0 = np.zeros(n) x1 = np.zeros(n) y1 = np.zeros(n) x2 = np.zeros(n) y2 = np.zeros(n) x3 = np.zeros(n) y3 = np.zeros(n) for dim in range(n): x0[dim] = start_x + np.cos(alpha[0, dim]) * l[0] y0[dim] = start_y + np.sin(alpha[0, dim]) * l[0] x1[dim] = x0[dim] + np.cos(alpha[1, dim]) * l[1] y1[dim] = y0[dim] + np.sin(alpha[1, dim]) * l[1] x2[dim] = x1[dim] + np.cos(alpha[2, dim]) * l[2] y2[dim] = y1[dim] + np.sin(alpha[2, dim]) * l[2] x3[dim] = x2[dim] + np.cos(alpha[3, dim]) * l[3] y3[dim] = y2[dim] + np.sin(alpha[3, dim]) * l[3] plt.scatter(x3, y3, marker='x', color='red') plt.xlabel('X in cm') plt.ylabel('Y in cm') plt.title('Movement') plt.grid() plt.show()