main.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. n = 100000
  4. l = [10, 26, 33, 30]
  5. alpha_0 = np.ones(n) * 90
  6. alpha_1 = np.random.uniform(0, 120, n)
  7. alpha_2 = np.random.uniform(-60, 60, n)
  8. alpha_3 = np.random.uniform(-100, 20, n)
  9. alpha = np.vstack((alpha_0, alpha_1, alpha_2, alpha_3)) * (np.pi / 180)
  10. start_x = 0
  11. start_y = 0
  12. x0 = np.zeros(n)
  13. y0 = np.zeros(n)
  14. x1 = np.zeros(n)
  15. y1 = np.zeros(n)
  16. x2 = np.zeros(n)
  17. y2 = np.zeros(n)
  18. x3 = np.zeros(n)
  19. y3 = np.zeros(n)
  20. for dim in range(n):
  21. x0[dim] = start_x + np.cos(alpha[0, dim]) * l[0]
  22. y0[dim] = start_y + np.sin(alpha[0, dim]) * l[0]
  23. x1[dim] = x0[dim] + np.cos(alpha[1, dim]) * l[1]
  24. y1[dim] = y0[dim] + np.sin(alpha[1, dim]) * l[1]
  25. x2[dim] = x1[dim] + np.cos(alpha[2, dim]) * l[2]
  26. y2[dim] = y1[dim] + np.sin(alpha[2, dim]) * l[2]
  27. x3[dim] = x2[dim] + np.cos(alpha[3, dim]) * l[3]
  28. y3[dim] = y2[dim] + np.sin(alpha[3, dim]) * l[3]
  29. plt.scatter(x3, y3, marker='x', color='red')
  30. plt.xlabel('X in cm')
  31. plt.ylabel('Y in cm')
  32. plt.title('Movement')
  33. plt.grid()
  34. plt.show()