Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- g=10;
- AR1x = [3, 3];
- AR1y = [2, 4];
- AR2x = [10, 10];
- AR2y = [5, 7];
- FR1x = [4, 5];
- FR1y = [4, 4];
- FR2x = [7, 9];
- FR2y = [5, 5];
- hold on;
- %plot (AR1x, AR1y, 'g-');
- %plot (AR2x, AR2y, 'g-');
- %plot (FR1x, FR1y, 'r-');
- %plot (FR2x, FR2y, 'r-');
- minAlpha = 5;
- maxAlpha = 85;
- minV = 5;
- maxV = 30;
- Vs =[];
- As =[];
- for iteration = [0:1:100000]
- v = rand() * (maxV-minV) + minV;
- alpha = rand() * (maxAlpha-minAlpha) + minAlpha;
- vx = v*cosd(alpha);
- vy = v*sind(alpha);
- t=0;
- y=1;
- xOld=0;
- yOld=0;
- crossesAllowed = 0;
- savedX = [];
- savedY = [];
- good = 0;
- while y > 0
- t = t + 0.01;
- x = vx * t;
- savedX =[savedX, x];
- y = vy * t - (g * t^2) / 2;
- savedY =[savedY, y];
- crossedForbidden = crossesLine(xOld,yOld,x,y, FR1x, FR1y);
- if crossedForbidden == 1
- disp('Hit forbidden line');
- break;
- end;
- crossedForbidden = crossesLine(xOld,yOld,x,y, FR2x, FR2y);
- if crossedForbidden == 1
- disp('Hit forbidden line');
- break;
- end;
- % Green lines
- crossesAllowed = crossesAllowed + crossesLine(xOld,yOld,x,y, AR1x, AR1y);
- crossesAllowed = crossesAllowed + crossesLine(xOld,yOld,x,y, AR2x, AR2y);
- if crossesAllowed == 2
- %good = good + 1;
- disp('OK simulation')
- %hold on
- %grid on
- %xlabel('X');
- %ylabel('Y');
- %plot (savedX, savedY, 'b-');
- %if good == 5
- % return;
- %end;
- Vs = [Vs, v];
- As = [As, alpha];
- break;
- end;
- xOld = x;
- yOld = y;
- end
- %if (allowedCrosses != 2)
- end
- hold on
- grid on
- plot (Vs, As, 'b*');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement