Entwickler-Ecke
Sonstiges (Delphi) - Kreis zeichnen
Sylvus - Sa 19.12.09 16:22
Titel: Kreis zeichnen
Hi Leute, ich würde gerne X und Y Punkte auf einem Kreis berechnen. Ich kenne den Mittelpunkt und auch den Radius.
Jetzt gibt es ja folgende Kreisgleichung:
Quelltext
1:
| r² = (x-Mx)² + (y-My)² |
Ich hab r,Mx und My gegeben. Ich könnte jetzt also eigentlich zu einem X ein passendes Y berechnen.
Mein Problem ist, wie ich das umsetzte.
Ich müsste das ganze nach Y-Auflösen, aber das schaffe ich nicht:
Quelltext
1: 2: 3: 4:
| r² = (x-Mb)² + (y-Ma)² r² - (x-Mb)² = (y-Ma)² = y²-2*Ma*Y+Ma² r² - (x-Mb)² - Ma² = y²-2*Ma*Y 0 = y²-2*Ma*Y - r² + (x-Mb)² + Ma² |
und nun p-q Formel??
Quelltext
1: 2:
| Y1,Y2 = Ma +- SQRT(MA² + r² - (x-Mb)² - Ma²) Y1,Y2 = Ma +- SQRT(r² - (x-Mb)²) |
Wäre das alles richtig?
Vielen Dank
bis dann Sylvus
jfheins - Sa 19.12.09 16:29
y = My +- sqrt(r^2 - (x-Mx)^2)
Beachte das +- ;)
Sylvus - Sa 19.12.09 16:31
super :) deckt sich mit meiner Lösung grad eben^^
DANKE, dann bau ich das gleich mal so ein!
Vielen Dank!
Bis bald
Niko S. - Sa 19.12.09 16:34
Wäre das nicht einfacher mit Vektoren zu lösen?
Jakob_Ullmann - Sa 19.12.09 16:41
Sylvus hat folgendes geschrieben : |
Ich müsste das ganze nach Y-Auflösen, aber das schaffe ich nicht:
Quelltext 1: 2: 3: 4:
| r² = (x-Mb)² + (y-Ma)² r² - (x-Mb)² = (y-Ma)² = y²-2*Ma*Y+Ma² r² - (x-Mb)² - Ma² = y²-2*Ma*Y 0 = y²-2*Ma*Y - r² + (x-Mb)² + Ma² | |
Quadratische Ergänzung [
http://de.wikipedia.org/wiki/Quadratische_Erg%C3%A4nzung].
| Zitat: |
| Wäre das nicht einfacher mit Vektoren zu lösen? |
Dann würde man doch am Ende auch nichts anderes rechnen, oder?
Niko S. - Sa 19.12.09 16:43
Stimmt, ich hab gerade an was anderes gedacht..
Ne dann passt das doch.
Hidden - Sa 19.12.09 18:38
Hi :)
Vektorrechnung und Lineare Algebra ist eigentlich immer exakt die selbe Rechnung. Es ist nur meißtens einfacher zu schreiben(was oft auch schon was wert ist), da Variablen(xM, yM, ..) neu gruppiert werden können. Daraus ergibt sich dann beim Menschen eine einfachere Rechnung, weil weniger Assoziationen auftauchen. Im Computer braucht man dann aber Objekte statt einfachen 32Bit-Integerspeicher, was das ganze imho nur verlangsamen kann.
Der Zweig der Objektorientierten Programmierung zeigt aber, dass oftmals nicht die Laufzeit des Programms, sondern die Entwicklungszeit minimiert werden soll.
mfG,
Boldar - Sa 19.12.09 20:05
Man könnte auch einfach Sinus und Cosinus nutzen, oder für höchste Performance nach Bresenham zeichnen.
Hidden - Sa 19.12.09 20:10
Boldar hat folgendes geschrieben : |
| Man könnte auch einfach Sinus und Cosinus nutzen, oder für höchste Performance nach Bresenham zeichnen. |
D.h.? StretchDraw eines Ausgangskreises für beliebige Ellipsen wäre auch möglich(wenn es nicht das ist^^).
mfG,
Sylvus - Sa 19.12.09 20:10
hehe habs im Endeffekt sogar mit sin und cos gemacht :) Sonst traten bei mir immer Fehler auf, weil ich Punkte in gleichmäßigen Abstand berechnen wollte...
Also ja geht auch mit Sin und Cos!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!