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

Ermitteln der Koordinaten innerhalb eines Kreises

 

mstan
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 16.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.02.2013, 14:17     Titel: Ermitteln der Koordinaten innerhalb eines Kreises
  Antworten mit Zitat      
Hallo zusammen!

Ich versuche ein Problem mit Matlab zu lösen, stehe jedoch vor einem Problem bei dem ich nicht weiter weiß. Ich hoffe jemand kann mir einen Tip geben und mir weiterhelfen.

Ich erzeuge ein Plot und erstelle darin einen Kreis mit einem bestimmten Durchmesser. Der Kreis wird mit der Rectangle-Funktion erzeugt (indem ich Curvature auf [1 1] setze).

Code:
circle = rectangle('Position',[0,0,400,400], 'Curvature', [1,1]);


Woran ich nun scheitere ist Folgendes: Ich will eine Liste bzw. einen Vektor erstellen, der alle Koordinaten (also alle Punkte, definiert durch X/Y-Werte) enthält, die durch den Kreis eingeschlossen werden. Es müssen nur ganzzahlige (Integer-) Koordinaten angegeben werden. Also beispielsweise wäre der Punkt [X=100 Y=200] im obigen Beispiel auf jeden Fall innerhalb des Kreises, jedoch wäre der Punkt [50 50] außerhalb.

Ich hab mir schon eine Weile den Kopf zerbrochen, komme jedoch auf keine funktionierende Lösung, um mir eine Liste mit den "eingeschlossenen" Koordinaten zu erstellen. Es wäre super, wenn mir jemand helfen kann!

Viele Grüße,
Matthias
Private Nachricht senden Benutzer-Profile anzeigen


livinLoudLila
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 24.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.02.2013, 15:11     Titel:
  Antworten mit Zitat      
also der radius deines kreises ist 200?

wie wärs dann einfach von mittelpunkt aus die abstände zu allen ganzzahligen punkten der fläche berrechnen und wenn der abstand größer als 200 ist, fällt der punkt raus?
Private Nachricht senden Benutzer-Profile anzeigen
 
livinLoudLila
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 24.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.02.2013, 15:32     Titel:
  Antworten mit Zitat      
Code:

figure,
rectangle('Position',[0,0,400,400], 'Curvature', [1,1]), hold on
r=200*2;
%Mittelpunkt bei 200/200
xM=200;
yM=200;
counter=0;
for i = 1:r
    for j = 1:r
       
        calcR=sqrt((xM-i)^2+(yM-j)^2);
        if calcR<=200
            counter=counter+1;
            array(counter,1)=i;
            array(counter,2)=j;
        end
       
    end
end


plot(array(:,1), array(:,2), 'xr'), axis equal
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Thomas84
Forum-Meister

Forum-Meister


Beiträge: 546
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.02.2013, 15:43     Titel:
  Antworten mit Zitat      
Code:

figure,
rectangle('Position',[0,0,400,400], 'Curvature', [1,1]), hold on
xM = 200;
yM = 200;
r = 200;

[xx,yy] = ndgrid(xM-r:xM+r,yM-r:yM+r);
dist = sqrt((xx-xM).^2+(yy-yM).^2);
plot(xx(dist<r),yy(dist<r),'+');
 


die Schleifen sind unnötig. Zudem solltest du array auf jeden fall vorbelegen.
Private Nachricht senden Benutzer-Profile anzeigen
 
livinLoudLila
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 24.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.02.2013, 15:44     Titel:
  Antworten mit Zitat      
der Unterschied zwischen Newbie und Guru
aber Dankeschön, jetzt hab ich auch was dabei gelernt! Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
mstan
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 16.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.02.2013, 16:28     Titel:
  Antworten mit Zitat      
Super! Das war genau, was ich gesucht hatte. Vielen Dank für die schnellen und tollen Antworten.

Viele Grüße,
Matthias
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.