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

die meisten Punkte die auf einem Kreis liegen?

 

Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.12.2009, 09:51     Titel:
  Antworten mit Zitat      
Zitat:
in dem man 3 Zufallspunkte nimmt (die Punkte können nebeneinander sein oder auch weit voneinander entfernt zufall eben ) einen kreis durch zeichnet


eben, und ich habe meinen Zweifel, dass die Koordinaten des Mittelpunkts durch den Durchschnitt der x- und y-Werte gegeben sind. Stell dir z.B. vor, die Punkte liegen fast auf einer Geraden - d.h. die Krümmung und demnach der Radius des Kreises wären seeehr groß, und die Koordinaten des Mittelpunkts hätten wenig mit denen der Kreispunkte zu tun.

Aber wenn du mit deinen Ergebnissen zufrieden bist, passts ja.

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


Hilbert86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 08.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.12.2009, 10:38     Titel:
  Antworten mit Zitat      
Du hast schon recht das es bei manchen Kreisen sehr große Radien haben kann ist schon klar aber ich sehe diese eher als Ausreisser.
Du musst es dir so vorstellen ich erzeuge so um die 3000 Kreise,wenn davon 100 aussreiser sind ist es nicht so Wild. Dazu kommt das ich Kreise mit bestimmten radien betrachte also in einem Toleranzbereich und da werden die rießen Radien dann auch nicht beachtet.

Was mich jetzt nur noch stutzig macht sind die leeren Bereiche in der Cell array. Da ja die Kreise aus 3 Punkte entstanden sind und diese 3, mindestens in der Cellarray für jeden kreis dirn stehen sollten. Kann sich da jemand was denken woran das liegen könnte?

Viele Grüße
Hilbert
_________________

MMAAAAAATTTTTLLAAAAABBBB
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.12.2009, 11:19     Titel:
  Antworten mit Zitat      
Hallo,

ich weiss nicht, wie ich es noch klarer sagen soll: Die Berechnung der Kreismittelpunkte aus drei Punkten ist schlicht falsch. Du kannst also nicht erwarten, dass die drei Punkte, aus denen du einen Kreis (falsch) errechnet hast, auf diesem (falsch errechneten) Kreis liegen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Hilbert86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 08.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.12.2009, 11:36     Titel:
  Antworten mit Zitat      
OK Smile noch deutlicher gehts echt nicht hehe!

wie rechnet man dann aus 3 Punkten einen Kreis (Mittelpunkt und radien)? Hast du eine besseren Lösungsweg?

Gruß
_________________

MMAAAAAATTTTTLLAAAAABBBB
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.12.2009, 11:49     Titel:
  Antworten mit Zitat      
Hallo,

der Abstand aller Punkte vom Mittelpunkt muss gleich sein, also:

Code:
(x1-xm)^2 + (y1-ym)^2 = (x2-xm)^2 + (y2-ym)^2
(x1-xm)^2 + (y1-ym)^2 = (x3-xm)^2 + (y3-ym)^2


Wenn du das ausmultiplizierst, fallen die Quadrate von xm und ym heraus und du hast eine lineares Gleichungssystem (2 Gleichungen, 2 Unbekannte) in xm und ym, das mit \-Operator gelöst werden kann. Anschließend r = (x1-xm)^2 + (y1-ym)^2.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Hilbert86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 08.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.12.2009, 12:41     Titel:
  Antworten mit Zitat      
ohman ich hab jetzt schon die 3te seite voll gekritzelt und komm auf kein ergebnis. Ich hasse LGS

also nach dem ausmultiplizieren komm ich auf:

Code:
x1^2 - 2·x1·xm + xm^2 + y1^2 - 2·y1·ym + ym^2 = x2^2 - 2·x2·xm + xm^2 + y2^2 - 2·y2·ym + ym^2
x1^2 - 2·x1·xm + xm^2 + y1^2 - 2·y1·ym + ym^2 = x3^2 - 2·x3·xm + xm^2 + y3^2 - 2·y3·ym + ym^2

 


aber dann scheitere ich kläglich kann mir jemand weiter helfen? Harald Smile ?
_________________

MMAAAAAATTTTTLLAAAAABBBB
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.12.2009, 13:46     Titel:
  Antworten mit Zitat      
Na, ich nehm mal die erste Gleichung. Die xm^2 und ym^2 sind auf beiden Seiten gleich und fallen raus.
Code:
x1^2 - 2·x1·xm + y1^2 - 2·y1·ym = x2^2 - 2·x2·xm + y2^2 - 2·y2·ym
Alles mit xm, ym auf eine Seite, Rest auf die andere Seite
Code:
(2·x2 - 2·x1)·xm + (2·y2 - 2·y1)·ym = x2^2 - x1^2
OK, ich nehm noch die andere Gleichung dazu, die wird:
Code:
(2·x3 - 2·x1)·xm + (2·y3 - 2·y1)·ym = x3^2 - x1^2

In MATLAB dann als LGS:
Code:
A = [2·x2 - 2·x1, 2·y2 - 2·y1; 2·x3 - 2·x1, 2·y3 - 2·y1];
b = [x2^2 - x1^2; x3^2 - x1^2];
M = A\b


Hab das mal eben so hin geschrieben, also noch nachkontrollieren...

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Hilbert86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 08.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.12.2009, 22:22     Titel:
  Antworten mit Zitat      
Hallo Smile

sorry das ich mich jetzt wieder melde war krankheitsbedingt ausser Gefecht gesetzt!

Da ist tatsächlich ein fehler in der Gleichung aber ich finde ihn nicht Sad

xm kommt zwar richtig raus aber ym ist falsch. Ich finde aber den fehler nicht!
Weis jemand bescheid?


hier noch ein anderer Weg den ich nicht in Matlab umsetzen kann weil ich nicht genau weiß wie ich das anstellen soll

xm^2 + ym^2 - r^2 - 2·xm·x - 2·ym·y = -(x^2 + y^2)

Wenn man nun setzt: A:= xm2 + ym2 - r2, B:= 2·xm und C:= 2·ym, ergibt sich:

A + B(-x) + C(-y) = -(x2 + y2)

Da jeweils drei Paare für x und y bekannt sind und drei Unbekannte (A, B und C) vorliegen, läßt sich ein lineares Gleichungssystem aufstellen, mit dem man A, B und C ermitteln kann:

A + B(-x1) + C(-y1) = -(x1^2 + y1^2)
A + B(-x2) + C(-y2) = -(x2^2 + y2^2)
A + B(-x3) + C(-y3) = -(x3^2 + y3^2)

Gruß
Hilbert
_________________

MMAAAAAATTTTTLLAAAAABBBB
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.12.2009, 22:45     Titel:
  Antworten mit Zitat      
Ich seh's grade... in der Gleichung fehlen die y1^2, y2^2, y3^2. Rechne es einfach nochmal nach...

Grüße,
Harald

Zuletzt bearbeitet von Harald am 21.12.2009, 22:56, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Hilbert86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 08.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.12.2009, 22:53     Titel:
  Antworten mit Zitat      
OK habs gefunden man war ich blind die y^2 fehlen in beiden gleichungen auf der rechten seite dann sieht es nämlich so aus:


Code:
b = [x2^2 - x1^2 + y2^2 - y1^2; x3^2 - x1^2 + y3^2 - y1^2];



nein kein Problem Harald alles in Ordnung und danke Smile


Viele Grüße
Hilbert
_________________

MMAAAAAATTTTTLLAAAAABBBB
Private Nachricht senden Benutzer-Profile anzeigen
 
Hilbert86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 08.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.12.2009, 19:28     Titel:
  Antworten mit Zitat      
Code:
for I = 1:N
xkreis{I} = x(abs((x-xm(I)).^2 + (y-ym(I)).^2 - r(I)^2) < tol);
ykreis{I} = y(abs((x-xm(I)).^2 + (y-ym(I)).^2 - r(I)^2) < tol);
end
anzahlkreispunkte = cellfun(@length, xkreis);


Hallo Leute

es geht um diesen Code. Irgendwie stimmt da etwas nicht mir ist aufgefallen das die Anzahl der Treffer sehr gering ist obwohl der Kreis auf sehr vielen Punkten liegt. Hängt das vlt davon ab das meine x und y Werte ganze Zahlen sind? Wenn ja wie könnte ich das dann verbessern? Tol Wert?

Und könntet ihr mir vlt nochmal erklären was cellfun da eigentlich macht ?


Viele Grüße und ein guten Rutsch ins Neue Jahr
Hilbert
_________________

MMAAAAAATTTTTLLAAAAABBBB
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.12.2009, 21:55     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Hängt das vlt davon ab das meine x und y Werte ganze Zahlen sind?

Nein.

Zitat:
Wenn ja wie könnte ich das dann verbessern? Tol Wert?

Stell es dir so vor: du überprüfst im Grunde, ob ein Punkt zwischen zwei Kreislinien liegt. Tol ist ein Maß für den Abstand dieser Kreislinien voneinander. Und natürlich: je größer dieser Abstand, desto mehr Punkte liegen vermutlich drin. Je nach Anwendung kann ich mir Tol in einer Größenordnung von 0,01 bis 5% vorstellen.

cellfun wendet eine Funktion auf jedes Element eines Cell Arrays an, siehe Doku.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Hilbert86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 08.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.12.2009, 01:36     Titel:
  Antworten mit Zitat      
Zitat:
Tol ist ein Maß für den Abstand dieser Kreislinien voneinander.


Ok das ist mir jetzt schon klar aber wenn ich tol zum Beispiel 0.01 wähle ist die Treffer zahl sehr sehr gering. Warum? Weil mein xm,ym,r komma zahlen sind mit bis zu 5 stellen. Somit muss die Kreisline schon exakt durch das Pixel gehen.

Als Beispiel hab ich mir mein Kreis zeichnen lassen. Die Pixelpunkte die einen Pixel daneben liegen oder vom Kreis nur gestrichen werden, werden somit nicht betachtet. Tol ist zwar der Abstand zwischen den Kreislinien aber in welchem Maß?Pixel?mm? Wenn ich das wüsste könnte ich auch erläutern wie der tol wert betrachtet werden muss. Und warum der Wert größer 5-10 die Ergebnisse liefert die ich eigentlich haben will.
_________________

MMAAAAAATTTTTLLAAAAABBBB
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.12.2009, 10:56     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
aber in welchem Maß?Pixel?mm? Wenn ich das wüsste könnte ich auch erläutern wie der tol wert betrachtet werden muss.


Die Frage hat ja nun nichts mit MATLAB zu tun und sollte bei genauerem Hinschauen leicht beantwortet sein: tol ist die Abweichung des quadratischen Abstands vom quadratischen Radius. Wenn du eine bessere Deutung ermöglichen möchtest, dann nimm statt d^2 - r^2 mit Hilfe von SQRT d-r. Dann ist tol in der gleichen Einheit wie deine Messungen. Wenn tol eine relative Abweichung sein soll, könnte man auch (d-r)/r nehmen [und dann tol vermutlich deutlich kleiner wählen].

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Hilbert86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 08.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.01.2010, 15:02     Titel:
  Antworten mit Zitat      
Was meinst du mit d? Durchmesser?

wenn ich d-r mach dann hab ich ja wieder r fals d der durchmesser wäre oder vertehe ich das gerade falsch?
_________________

MMAAAAAATTTTTLLAAAAABBBB
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2, 3  Weiter

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.