Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Skriv function [vx, vy] = velocity(ax, ay, vx, vy, dt). Denne beregner farten i det neste steget gitt nåværende fart og akselerasjon.

e)

Skriv function [xv, yv] = trajectory( initialSpeed, initialAngle, height ) . Denne funksjonen benytter seg av initialSpeed, acceleration, velocity og position. Den skal returnere to lister: en for x og en for y-koordinater. 
Tiden kulen bruker på å treffe bakken er ukjent, en while løkke må derfor benyttes. Stopp denne når høyden (y) blir mindre enn 0.

...

Lag funksjonen plotTrajectory. Denne skal ha samme parameterene som trajectory. Den skal benytte seg av plot-funksjonen for å vise kulens bane.  

g)

Lag funksjonen plotTrajectoryLength. Den skal kalle trajectory med vinkler mellom 0 og pi/2 (0 og 90 grader). Deretter skal den plotte vinkel mot lengden av kulestøtet. 
Velg pi/32 som steglengde for vinkelen.
Hvilken vinkel gir best resultat?
Hva skjer om man endrer på høyden? 
Hva skjer om k og g endres?
Har farten noe å si for vinkelen?

 h) 

 Det ønskes en enkel måte å visualisere kulestøtet som en animasjon. Se om alt fungerer ved å lagre koden under og kjøre den med noen verdier. 
 

Code Block
languagenone
function animate(initialSpeed, initialAngle, height)
[xliste, yliste]= trajectory(initialSpeed, initialAngle, height);
dt=0.1;
    % Lite spennende
    % Look away
    xmax = max(xliste);                 
    xmin = min(xliste);
    ymax = max(yliste);
    ymin = min(yliste);
    xlen = length(xliste);
    axis([xmin xmax ymin ymax]);        
    hFig = figure(1);                   
    set(hFig, 'Position', [xmin ymin 1200 800])

% Spennende
for i = [1:length(xliste)]          % printer plottet, ett steg lengre for hver
                                    % "frame" eller steg/dt.
    hold on;                        % Vil beholde det eksisterende plottet.
    plot(xliste(1:i),yliste(1:i), '-k'); % Hva skjer her?
    pause(dt);                      % Koden kjører for fort, ber den pause med "dt"
end