Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6. void initPositions(double *x, double *y, int N);
  7. void initVelocity(double *xV, double *yV, int N);
  8. void showTables(double *x, double *y, double *xV, double *yV, int N);
  9. void display(double *x, double *y, int N);
  10. void move(double *x, double *y, double *xV, double *yV, int N);
  11. void collideWall(double *x, double *y, double *xV, double *yV, int N);
  12.  
  13. void main()
  14. {
  15. int N = 10;
  16. double x[N], y[N], xV[N], yV[N];
  17.  
  18. // OTWÓRZ OKNO GRAFICZNE O WYMIARACH 400x400
  19.  
  20. initPositions(x, y, N);
  21. initVelocity(xV, yV, N);
  22. showTables(x, y, xV, yV, N);
  23.  
  24. display(x, y, N);
  25. collideWall(x, y, xV, yV, N);
  26.  
  27. for (int i = 0; i < 50; i++)
  28. {
  29. animate(100); // oczkiwanie przez 100 ms
  30. clear(); // czyszczenie okna dla nowej klatki
  31. move(x, y, xV, yV, N);
  32. collideWall(x, y, xV, yV, N);
  33. display(x, y, N);
  34. }
  35. printf("\n\n");
  36. showTables(x, y, xV, yV, N);
  37. }
  38.  
  39. void initPositions(double *x, double *y, int N)
  40. {
  41. srand(time(NULL));
  42.  
  43. for (int i = 0; i < N; i++)
  44. {
  45. x[i] = rand() % 360 + 20;
  46. y[i] = rand() % 360 + 20;
  47. }
  48. }
  49.  
  50. void initVelocity(double *xV, double *yV, int N)
  51. {
  52. srand(time(NULL));
  53.  
  54. for (int i = 0; i < N; i++)
  55. {
  56. xV[i] = (double)rand() / RAND_MAX * 2 - 1;
  57. yV[i] = (double)rand() / RAND_MAX * 2 - 1;
  58. }
  59. }
  60.  
  61. void showTables(double *x, double *y, double *xV, double *yV, int N)
  62. {
  63. printf("\tx\t\t\ty\t\t\txV\t\t\tyV\n");
  64. for (int i = 0; i < N; i++)
  65. {
  66. printf("%.2f\t%.2f\t%.2f\t%.2f\n", x[i], y[i], xV[i], yV[i]);
  67. }
  68. }
  69.  
  70. void display(double *x, double *y, int N)
  71. {
  72. for (int i = 0; i < N; i++)
  73. {
  74. // WYŚWIETLENIE PIŁKI O WSPÓŁRZĘDNYCH (x[i], y[i]) I PROMIENIU 20
  75. }
  76. }
  77.  
  78. void move(double *x, double *y, double *xV, double *yV, int N)
  79. {
  80. for (int i = 0; i < N; i++)
  81. {
  82. x[i] += xV[i];
  83. y[i] += yV[i];
  84. }
  85. }
  86. void collideWall(double *x, double *y, double *xV, double *yV, int N)
  87. {
  88. for (int i = 0; i < N; i++)
  89. {
  90. if (x[i] - 20 <= 0 || x[i] + 20 >= 400)
  91. xV[i] *= -1;
  92.  
  93. if (y[i] - 20 <= 0 || y[i] + 20 >= 400)
  94. yV[i] *= -1;
  95. }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement