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

2D punkt

 

82kolu
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 08.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2012, 16:26     Titel: 2D punkt
  Antworten mit Zitat      
Hey hey,
ich fang gerade ganz neu an Matlab zu programmieren.
und will einen Punkt von links nach rechts bewegen lassen.

Code:

% Das ist mein Programm.
M = moviein(N); % Initialisieren des Films
[X,Y]=meshgrid(-5*pi:.1:5*pi); % Gitter erzeugen
for i = 1:0.5:10
x = 5+i;
y = 4+2*i;
plot(x,y,'o','MarkerSize',10,'MarkerEdgeColor','g','MarkerFaceColor','g');
M(:,t)=getframe
end
movie(M,2); % Wiederholen des Films



2 Probleme haben sich aufgetan:
1: der Punkt bewegt sich nicht sondern die Umgebung.
2: der Punkt bewegt sich viel zu schnell.

könnte mir da einer helfen?

Vielen Dank.
82kolu
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.04.2012, 20:46     Titel:
  Antworten mit Zitat      
zu 1.
mit axis die axen festlegen damit sie sich nicht anpassen.
zu2.
Code:

man kann die fps angeben
Private Nachricht senden Benutzer-Profile anzeigen
 
82kolu
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 08.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.04.2012, 16:28     Titel:
  Antworten mit Zitat      
Hey
ich hab des jetzt mit den axis versucht.
im enternet steht auch viel dazu aber wenn ich des mache, so wie es im internet steht, und es dann debuge dann macht mein programm total den rotz.

Code:
% Das ist mein Programm.
N=10;
M = moviein(N); % Initialisieren des Films
for i = 1:1:100
x = 5+i;
y = 4+2*i;
axis([0 120 0 120]) %achsen xmin xmax ymin ymax
plot(x,y,'o','MarkerSize',10,'MarkerEdgeColor','g','MarkerFaceColor','g');
M(:,i)=getframe
end
%movie(M,2); % Wiederholen des Films

 


Danke schonmal
Private Nachricht senden Benutzer-Profile anzeigen
 
82kolu
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 08.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.04.2012, 16:57     Titel:
  Antworten mit Zitat      
Wenn ich es mit hold on versuche dann zeichnet Matlab die punkte in dem Koordinatensystem, aber die gezeichneten punkte verschwinden nicht wieder.
Ich habe es auch mit "hold off" versucht funktioniert abe rnicht.

Code:

N=10;
M = moviein(N); % Initialisieren des Films
for i = 1:1:100
x = 5+i;
y = 4+2*i;
axis equal
axis([0 120 0 250]) %achsen xmin xmax ymin ymax
hold on
xlabel('x')
ylabel('y')
plot(x,y,'o','MarkerSize',10,'MarkerEdgeColor','g','MarkerFaceColor','g');
M(:,i)=getframe
end
%movie(M,2); % Wiederholen des Films
 



Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
lilov
Forum-Century

Forum-Century


Beiträge: 193
Anmeldedatum: 05.05.10
Wohnort: Bremerhaven
Version: ---
     Beitrag Verfasst am: 09.04.2012, 19:21     Titel:
  Antworten mit Zitat      
Hi,

damit die Punkte verschwinden und die Achsen bleiben kannst du es mit handles versuchen:

Code:


N=10;
M = moviein(N); % Initialisieren des Films
for i = 1:1:100
x = 5+i;
y = 4+2*i;
axis equal
axis([0 120 0 250]) %achsen xmin xmax ymin ymax
hold on
xlabel('x')
ylabel('y')
h =plot(x,y,'o','MarkerSize',10,'MarkerEdgeColor','g','MarkerFaceColor','g');
M(:,i)=getframe
delete(h)
end
%movie(M,2); % Wiederholen des Films


 


Gruß,

Hristo
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 09.04.2012, 19:23     Titel:
  Antworten mit Zitat      
Code:
for i = 1:1:100
x = 5+i;
y = 4+2*i;
plot(x,y,'o','MarkerSize',10,'MarkerEdgeColor','g','MarkerFaceColor','g');
axis([0 120 0 210])
M(i)=getframe
end
movie(M,2);
Private Nachricht senden Benutzer-Profile anzeigen
 
82kolu
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 08.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.04.2012, 21:08     Titel:
  Antworten mit Zitat      
Sehr cool,
danke Smile
Private Nachricht senden Benutzer-Profile anzeigen
Verschoben: 10.04.2012, 15:39 Uhr von denny
Von Mathematik nach Grafiken und Plots
 
82kolu
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 08.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2012, 16:10     Titel:
  Antworten mit Zitat      
Hey hey,

ich hab jetzt mal einen weiteren Punkt in den "Raum" eingefügt.
und die bewegen sich zum Ausgang.
2Probleme:

1. erzeugen der kreise sehr aufwändig. Kann man das geschickter lösen?
2. ich will später noch machen das die Kreise sich keinesfalls überlappen dürfen. gibts da ideen wie ich das machen kann?

Code:

lox = 1;
lux = 1;
rux = 100;
rox = 100;
%Ecke_des_Gebäudes_x_______________________________________
loy = 200;
luy = 100;
ruy = 100;
roy = 200;
%Ecke_des_Gebäudes_y_______________________________________
exit1 = 167;%Oberer_Balken_der_Tür_y
exit2 = 150;%Unterer_Balen_der_Tür_y
exity=(exit1+exit2)/2;%Punkt_andem_sich_der_Kreis_orientiert(Ausgang)
exit3 = 100;%Vorderer_Balken_der_Tür_x
exit4 = 100;%Hinterer_Balen_der_Tür_x
exitx =(exit3+exit4)/2;%Punkt_andem_sich_der_Kreis_orientiert(Ausgang)
wando = 200; %ObereWand
wandu = 100; %UntereWand
Zzx = 0;
Zzy = 0;
Zzx2 = 0;
Zzy2 = 0;
Toleranz = 5;
programmende = false;
programmende2 = false;

hold on
line([lux,lox],[luy,loy])%linke_Mauer
line([lox,rox],[loy,roy])%obere_Mauer
line([exit4,rux],[exit2,ruy])%rechts_unter_Exit
line([exit3,rox],[exit1,roy])%rechts_über_Exit
line([rux,lux],[ruy,luy])%untere_Mauer
line([exit4, exit4 + Toleranz],[exit2, exit2 + 10], 'Color', 'r')%Tür
%_________________Raum_______________________________
%h,i,exit,exit1,exit2
%a,b,x,y,Zzx,Zzy::1ter Kreis
%c,d,u,Zzx2,Zzy2::2ter Kreis
a = 0;
b = 140;
c = 0;
d = 100;
%_______Anfangspunktkoordinaten_des_Kreises__________
for i = 1:1:Inf
    Zzx = randn()+2;
    Zzx2 = randn()+2;
    x = a;
    u = c;
if(x < exitx - Toleranz)
    x = a + Zzx;
else
end
if(u < exitx - Toleranz)
   u = c + Zzx2;
else
end
if(programmende)  
else
    y = b + Zzy;
end
if(programmende2)  
else
    v = d + Zzy2;
end
%________zufällige_Bewegung_in_positive_x-Richtung___
if((y < wando - Toleranz) && (y > wandu + Toleranz))
    if(y <= exity)
        Zzy = randn() + 2;
    else
        Zzy = randn() - 2;
    end    
elseif (y >= wando - Toleranz)
    Zzy = randn() - 2;
elseif (y <= 110)
    Zzy = randn() + 2;
end
if((x < exitx - Toleranz)||(y >= exit1 || y <= exit2))
    a = x;
    b = y;
 else
     programmende = true;
    a = exitx + 10 * Toleranz;
    b = exity + 10 * Toleranz;
 end
%________zufällige_Bewegung_im_Raum__________________
if((v < wando - Toleranz) && (v > wandu + Toleranz))
    if(v <= exity)
        Zzy2 = randn() + 2;
    else
        Zzy2 = randn() - 2;
    end    
elseif (v >= wando - Toleranz)
    Zzy2 = randn() - 2;
elseif (v <= 110)
    Zzy2 = randn() + 2;
end
if((u < exitx - Toleranz)||(v >= exit1 || v <= exit2))
    c = u;
    d = v;
 else
     programmende2 = true;
    c = exitx + 12 * Toleranz;
    d = exity + 10 * Toleranz;
end
%________zufällige_Bewegung_im_Raum__________________
if(programmende == true && programmende2 == true)
    plot(a, b, 'o', 'MarkerSize', Toleranz, 'MarkerEdgeColor', 'g', 'MarkerFaceColor', 'g');
%________Kreis_wird_an_Endposition_gezeichnet________
    plot(c, d, 'o', 'MarkerSize', Toleranz, 'MarkerEdgeColor', 'r', 'MarkerFaceColor', 'r');
%________Kreis_wird_an_Endposition_gezeichnet________
    break;
end
%________Ende________________________________________
h = plot(x, y, 'o', 'MarkerSize', Toleranz, 'MarkerEdgeColor', 'g', 'MarkerFaceColor', 'g');
%________Kreis_wird_gezeichnet_______________________
l = plot(u, v, 'o', 'MarkerSize', Toleranz, 'MarkerEdgeColor', 'r', 'MarkerFaceColor', 'r');
%________Kreis_wird_gezeichnet_______________________
axis([0 rox+rux 0 loy+roy])
axis off;
M(i) = getframe
delete(h)
delete(l)
%_Koordinatensystem_passt_sich_nicht_an_|_voriger_Punkt_wird_gelöscht___
end

 


Vielen Dank schonmal
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 - 2025 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.