Advertisement
Guest User

Untitled

a guest
Oct 18th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. g=10;
  2.  
  3. AR1x = [3, 3];
  4. AR1y = [2, 4];
  5. AR2x = [10, 10];
  6. AR2y = [5, 7];
  7. FR1x = [4, 5];
  8. FR1y = [4, 4];
  9. FR2x = [7, 9];
  10. FR2y = [5, 5];
  11.  
  12. hold on;
  13. %plot (AR1x, AR1y, 'g-');
  14. %plot (AR2x, AR2y, 'g-');
  15. %plot (FR1x, FR1y, 'r-');
  16. %plot (FR2x, FR2y, 'r-');
  17.  
  18. minAlpha = 5;
  19. maxAlpha = 85;
  20. minV = 5;
  21. maxV = 30;
  22.  
  23. Vs =[];
  24. As =[];
  25.  
  26.  
  27. for iteration = [0:1:100000]
  28. v = rand() * (maxV-minV) + minV;
  29. alpha = rand() * (maxAlpha-minAlpha) + minAlpha;
  30.  
  31. vx = v*cosd(alpha);
  32. vy = v*sind(alpha);
  33.  
  34. t=0;
  35. y=1;
  36. xOld=0;
  37. yOld=0;
  38.  
  39. crossesAllowed = 0;
  40. savedX = [];
  41. savedY = [];
  42.  
  43. good = 0;
  44.  
  45. while y > 0
  46. t = t + 0.01;
  47. x = vx * t;
  48. savedX =[savedX, x];
  49. y = vy * t - (g * t^2) / 2;
  50. savedY =[savedY, y];
  51.  
  52.  
  53.  
  54. crossedForbidden = crossesLine(xOld,yOld,x,y, FR1x, FR1y);
  55. if crossedForbidden == 1
  56. disp('Hit forbidden line');
  57. break;
  58. end;
  59.  
  60. crossedForbidden = crossesLine(xOld,yOld,x,y, FR2x, FR2y);
  61. if crossedForbidden == 1
  62. disp('Hit forbidden line');
  63. break;
  64. end;
  65.  
  66. % Green lines
  67. crossesAllowed = crossesAllowed + crossesLine(xOld,yOld,x,y, AR1x, AR1y);
  68. crossesAllowed = crossesAllowed + crossesLine(xOld,yOld,x,y, AR2x, AR2y);
  69.  
  70.  
  71. if crossesAllowed == 2
  72. %good = good + 1;
  73. disp('OK simulation')
  74. %hold on
  75. %grid on
  76. %xlabel('X');
  77. %ylabel('Y');
  78.  
  79. %plot (savedX, savedY, 'b-');
  80.  
  81. %if good == 5
  82. % return;
  83. %end;
  84.  
  85. Vs = [Vs, v];
  86. As = [As, alpha];
  87. break;
  88.  
  89. end;
  90.  
  91.  
  92.  
  93. xOld = x;
  94. yOld = y;
  95. end
  96.  
  97. %if (allowedCrosses != 2)
  98.  
  99. end
  100.  
  101. hold on
  102. grid on
  103. plot (Vs, As, 'b*');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement