WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

teil einer parabel ausblenden

 

georg.pongratz
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2008, 11:15     Titel: teil einer parabel ausblenden
  Antworten mit Zitat      
grüß euch,
bin dabei einen basketball freiwurf über lineare differentialgleichungen zu simulieren, dabei soll matlab mir die wurfparabel ploten, jedoch brauche ich dabei natürlich nicht die ganze parabel gezeichnet sondern nur bis zu dem punkt an dem der ball=die parabel durch den basketballring geht, der nachkommende teil soll ausgeblendet werden.
merci für anregende gedanken und kommentare
Private Nachricht senden Benutzer-Profile anzeigen


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 13.10.2008, 15:07     Titel:
  Antworten mit Zitat      
Hallo Georg,

ich nehme mal an, dass Du einen Zeitvektor t hast und den Ort des Balls als nx2-Matrix Ort_Ball mit zwei Komponenten pro Zeitschritt. Die ganze Parabel könnte man zeichnen mit

Code:
plot(Ort_Ball(:,1),Ort_Ball(:,2))

Dazu kommt jetzt eine Ortsinformation über den Korb, am besten in x-Richtung. Gezeichnet werden sollen jetzt nur noch die Ball-Orte bis zum Ort des Korbes (Ort_Korb):

Code:
% bei einem Wurf von links nach rechts (sonst >=)
ind = find(Ort_Ball(:,1)<=Ort_Korb;
plot(Ort_Ball(ind,1),Ort_Ball(ind,2))


Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
georg.pongratz
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2008, 11:18     Titel:
  Antworten mit Zitat      
danke erstmals für die schnelle antwort, ich habe zwar eine zeit-angabe, diese bestimmt aber nur die zeitschritte
vielleicht habe ich mich anfangs schlecht ausgedrückt: in dem function file werden abwurfwinkel, abwurfgeschwindigkeit und die zeitschritte abgefragt, nach diesen angaben soll dann eine wurfparabel gezeichnet werden, hier mal der code:

Code:
function freiwurf (alpha, v0, dt)

g=9.81;
v0x=v0*cos(alpha*pi/180);
v0y=v0*sin(alpha*pi/180);

x(1)=0;
x(2)=v0x*dt+x(1);
y(1)=2;
y(2)=v0y*dt+y(1);

n=2;

while y(n)>2
    x(n+1)=2*x(n)-x(n-1);
    y(n+1)=-g*dt*dt+2*y(n)-y(n-1);
    n=n+1;
end

xkorb = [5-0.5:0.01:5];
ykorb = 3.05;

hold on
plot(xkorb,ykorb)
plot(x,y,'r')
hold off


und mein problem ist eben, dass sollte der ball den ring treffen, der mit xkorb,ykorb gezeichnet wird, die parabel weitergezeichnet wird.

Edit by Bijick: Code-Formatierung (oben mittig) ergänzt. Bitte beim nächsten Mal selbst machen. Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 14.10.2008, 13:45     Titel:
  Antworten mit Zitat      
Hallo Georg,

da sieht man mal wieder, wie hilfreich der verwendete Code ist, um zu erklären, was man meint. Smile Es gibt also zwei Fälle:
Entweder der Ball geht in den Korb Arrow Die Parabel bricht ab.
Oder der Ball geht nicht in den Korb Arrow Die Parabel geht weiter.

In diesem Fall würde ich schon in der DGL ansetzen und nur dann die Flugbahn weiter berechnen, wenn der Ball nicht getroffen hat:

Code:
while y(n)>2 && ~(y(n)<ykorb&&x(n)>xkorb(1)&&x(n)<xkorb(end))
    x(n+1)=2*x(n)-x(n-1);
    y(n+1)=-g*dt*dt+2*y(n)-y(n-1);
    n=n+1;
end


Herzliche Grüße
Bijick

PS: Mein Wurf wäre freiwurf(65,8.25,0.01). Very Happy
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
georg.pongratz
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2008, 15:24     Titel:
  Antworten mit Zitat      
es funkt einwandfrei,
vielen dank für die schnelle antwort - vielleicht treff ich in zukunft ja auch endlich einmal meine freiwürfe Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
georg.pongratz
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.11.2008, 10:55     Titel:
  Antworten mit Zitat      
hallo leute, ich hab noch ein weiteres problem beim schiefen wurf:
der plot stoppt leider nicht ganz so wie gewünscht, denn er zeichnet bei einem dt=0.01 noch einen datenpunkt unterhalb des ringniveaus - mein lektor hat mir jetzt die aufgabe gestellt, zwischen den zwei letzten datenpunkten zu interpolieren, ich habe mich mit der matlab hilfe beschäftigt und hab da den befehl zur ein dimensionalen interpolation gefunden, was jedoch überhaupt nicht funktioniert ist die interpolation der letzten zwei datenpunkte

Code:


yi=y(end-1):0.01:y(end);
xi=interp1(x,y,yi);
 

ich habe überhaupt das problem, dass nur y-werte auf der steigenden flanke der parabel interpoliert werden, bei der fallenden flanke tut sich überhaupt nichts
meine frage an euch ist jetzt, ob meine überlegungen überhaupt richtig sind, oder ich total auf dem holzweg bin? bzw. was ich ändern kann bzw. soll
vielen dank
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.