Verfasst am: 20.02.2013, 14:17
Titel: Ermitteln der Koordinaten innerhalb eines Kreises
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!
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?
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
Super! Das war genau, was ich gesucht hatte. Vielen Dank für die schnellen und tollen Antworten.
Viele Grüße,
Matthias
Einstellungen und Berechtigungen
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
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.