scherzkeks: Kreislinien berechnen

Bei der DHTML-Library von SelfHTML steht im untersten Abschnitt "DHTML-Bibliothek erweitern" unter anderem

Ausgehend davon sind auch Funktionen möglich, die bestimmte Bewegungsabläufe wie Kreisbahnen usw. berechnen und Elemente entsprechend positionieren.

Bei <http://de.selfhtml.org/dhtml/modelle/dom.htm#css_eigenschaftenqtitle=der Beschreibung, wie man CSS-Eigenschaften mithilfe des DOM dynamisch ändert> wird etwas ähnliches auch angewandt.
Ein Mathematiklehrer hat mir das (mit Sinus und Cosinus) mal alles erklärt, ich habe jedoch keine Ahnung mehr, wie das eigentlich funktioniert hat...
Könnte mir das jemand mal in etwa erklären?
schönen Samstagabend noch,
scherzkeks

P.S.: http://forum.de.selfhtml.org/archiv/2005/5/t108643/#m676909 habe ich noch nicht gelesen, da meine Mutter hier gerade einen Aufstand macht, weil ich den Computer ausmachen soll

  1. Hi,

    Ein Mathematiklehrer hat mir das (mit Sinus und Cosinus) mal alles erklärt, ich habe jedoch keine Ahnung mehr, wie das eigentlich funktioniert hat...

    kurzes Intermezzo: Jetzt weißt Du, warum das Informatik-Studium zur Hälfte aus Mathe besteht :-)

    Ich setze ein grundsätzliches Verständnis von Sinus und Cosinus voraus. Wenn Du Dir die beiden Kurven vorstellst, entspricht der Sinus-Wert der "Höhe" eines Kreises, der Cosinus-Wert seiner "Breite" - also jeweils der Entfernung vom Mittelpunkt auf der y- bzw. x-Achse.

    Könnte mir das jemand mal in etwa erklären?

    Welche Kreisberechnung speziell benötigst Du?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      kurzes Intermezzo: Jetzt weißt Du, warum das Informatik-Studium zur Hälfte aus Mathe besteht :-)

      Ich setze ein grundsätzliches Verständnis von Sinus und Cosinus voraus. Wenn Du Dir die beiden Kurven vorstellst, entspricht der Sinus-Wert der "Höhe" eines Kreises, der Cosinus-Wert seiner "Breite" - also jeweils der Entfernung vom Mittelpunkt auf der y- bzw. x-Achse.

      und damit es noch etwas abwechslungsreicher wird, werfe ich hier noch einen anderen Ansatz in die Runde. Ein Kreis lässt sich in einem kartesischen Koordinatensystem, das der Bildschirmdarstellung in aller Regel zugrunde liegt, mit der Gleichung

      (x-xm)² + (y-ym)² = r²

      beschreiben. Dabei sind xm und ym die Koordinaten des Kreismittelpunkts, r der Radius. Diese Darstellung lässt sich sehr schön mit dem Satz des Pythagoras veranschaulichen.

      Viel Vergnügen,

      Martin

      1. Hi,

        Wenn Du Dir die beiden Kurven vorstellst, entspricht der Sinus-Wert der "Höhe" eines Kreises, der Cosinus-Wert seiner "Breite" - also jeweils der Entfernung vom Mittelpunkt auf der y- bzw. x-Achse.
        und damit es noch etwas abwechslungsreicher wird,

        _noch_ abwechslungsreicher? Dabei habe ich doch schon x und y vertauscht, wie mir gerade auffällt :-)

        werfe ich hier noch einen anderen Ansatz in die Runde. Ein Kreis lässt sich in einem kartesischen Koordinatensystem, das der Bildschirmdarstellung in aller Regel zugrunde liegt, mit der Gleichung
          (x-xm)² + (y-ym)² = r²
        beschreiben.

        Btw, kennst Du (oder jemand anders) zufällig den Algorithmus, mit dem man einen Kreis nur durch Addition und Subtraktion beschreiben kann?[1] Ich habe mir dafür schon mal die Finger wund gesucht, leider erfolglos.

        Cheatah

        [1] Mag sein, dass auch Multiplikation und Division dabei waren, aber jedenfalls keine Winkelfunktionen.

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi Cheatah,

          _noch_ abwechslungsreicher? Dabei habe ich doch schon x und y vertauscht, wie mir gerade auffällt :-)

          ist doch egal, ein Kreis ist doch "rundherum symmetrisch", da fällt die Koordinatenvertauschung nicht auf!

          Btw, kennst Du (oder jemand anders) zufällig den Algorithmus, mit dem man einen Kreis nur durch Addition und Subtraktion beschreiben kann?[1] Ich habe mir dafür schon mal die Finger wund gesucht, leider erfolglos.

          Und das will was heißen, glaube ich.
          Also Kreisberechnung ausschließlich mit den Grundrechenarten, wenn ich dich richtig verstehe? Huii...

          Du kannst natürlich die Pythagoras-Formel nach y auflösen und die Wurzeln jeweils nach Heron berechnen. Brauchst auch nur einen Achtelkreis! Das zeite Achtel bekommst du ja durch Koordinatentausch, die anderen drei Viertel durch Vorzeichenwechsel. Viel Spaß! ;-)

          Nee, ein einfacheres arithmetisches Verfahren ist mir nicht bekannt, noch nie gehört, dass es ein solches gäbe.

          Ciao,

          Martin

          1. Hi,

            ist doch egal, ein Kreis ist doch "rundherum symmetrisch", da fällt die Koordinatenvertauschung nicht auf!

            wie heißt es so schön: Ein Kreis ist ein Gebilde, das an allen Ecken und Kanten rund ist.

            ;-)

            Also Kreisberechnung ausschließlich mit den Grundrechenarten, wenn ich dich richtig verstehe? Huii...

            Ja, das ist eine ziemlich geniale Geschichte. Hat mich in meiner Schulzeit sehr beeindruckt, und heute finde ich es nicht minder bemerkenswert.

            Du kannst natürlich die Pythagoras-Formel nach y auflösen und die Wurzeln jeweils nach Heron berechnen.

            Mal schauen, ob ich damit was bewerkstelligen kann, danke.

            Nee, ein einfacheres arithmetisches Verfahren ist mir nicht bekannt, noch nie gehört, dass es ein solches gäbe.

            Schade ...

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
        2. Hi,

          Btw, kennst Du (oder jemand anders) zufällig den Algorithmus, mit dem man einen Kreis nur durch Addition und Subtraktion beschreiben kann?[1] Ich habe mir dafür schon mal die Finger wund gesucht, leider erfolglos.
          [1] Mag sein, dass auch Multiplikation und Division dabei waren, aber jedenfalls keine Winkelfunktionen.

          Du meinst den Bresenham Kreis? Suche nach "Bresenham circle" ergab als ersten Link http://www.gamedev.net/reference/articles/article767.asp aber da duerfte es auch bessere geben.
          Hoffe ich zumindest ;-)

          so short

          Christoph Zurnieden

        3. Hi,

          Btw, kennst Du (oder jemand anders) zufällig den Algorithmus, mit dem man einen Kreis nur durch Addition und Subtraktion beschreiben kann?[1] Ich habe mir dafür schon mal die Finger wund gesucht, leider erfolglos.

          "Kennen" ist übertrieben. Aber ich kann mich da an was erinnern (war noch zu C64-Zeiten).
          Da ging es darum, einen Kreis Punkt für Punkt zu zeichnen.
          Da gab es einen Algorithmus, mit dem ermittelt wurde, ob für den nächsten Punkt ein Schritt in X-, in Y- oder in beiden Richtungen erforderlich ist.
          Das genaue Verfahren weiß ich aber nicht mehr, war aber relativ leicht in Assembler zu implementieren, muß also ohne Sinus/Cosinus ausgekommen sein.

          Da wurde - wenn ich mich richtig erinnere - einmal das Quadrat des Radius berechnet (die einzige Multiplikation).

          Und dann für den ersten Punkt (der war x = r, y = 0) dieser Wert für x^2 gespeichert und 0 für y^2.

          Dann wurde für die weiteren Schritte jeweils berechnet (per (a+1)^2 = a^2 + 2a + 1), wie sich dieser Wert für x - 1 alleine, y + 1 alleine und x - 1  und y + 1 zusammen verändert und das Ergebnis noch jeweils mit dem Radiusquadrat verglichen.

          Da x^2 (bzw. y^2) ja schon berechnet war, reichen für die Berechnung der weiteren Punkte also tatsächlich Addition und Subtraktion (2a ist zwar theoretisch eine Multiplikation, die sich aber trivial auf eine Addition zurückführen läßt).

          Je nachdem, welches der 3 Ergebnisse die geringste Abweichung hatte, wurde x - 1, y + 1 oder beide verwendet.

          Abgebrochen wurde, wenn x = 0 erreicht war.

          Damit war ein Viertelkreis berechnet. Die anderen Viertelkreise ergaben sich jeweils durch Spiegelung der Koordinaten.

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Schreinerei Waechter
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          1. (der war x = r, y = 0) dieser Wert für x^2 gespeichert und 0 für y^2. [...](per (a+1)^2 = a^2 + 2a + 1), [...] für x - 1 alleine, y + 1 alleine und x - 1  und y + 1 zusammen verändert und das Ergebnis noch jeweils mit dem Radiusquadrat verglichen.[...] Da x^2 (bzw. y^2) [...](2a ist zwar theoretisch eine Multiplikation, die sich aber trivial auf eine Addition zurückführen läßt). [...] x - 1, y + 1 oder beide verwendet.
            Damit war ein Viertelkreis berechnet. Die anderen Viertelkreise ergaben sich jeweils durch Spiegelung der Koordinaten.

            Ihr schafft es immer wieder, dass ich mir entweder dumm oder faul vorkomme! :P

            cu,

            wär mal cool

            Andreas

            schönen Sonntagnachmittag noch,
            scherzkeks

            1. Hi,

              (der war x = r, y = 0) dieser Wert für x^2 gespeichert und 0 für y^2. [...](per (a+1)^2 = a^2 + 2a + 1), [...] für x - 1 alleine, y + 1 alleine und x - 1  und y + 1 zusammen verändert und das Ergebnis noch jeweils mit dem Radiusquadrat verglichen.[...] Da x^2 (bzw. y^2) [...](2a ist zwar theoretisch eine Multiplikation, die sich aber trivial auf eine Addition zurückführen läßt). [...] x - 1, y + 1 oder beide verwendet.
              Damit war ein Viertelkreis berechnet. Die anderen Viertelkreise ergaben sich jeweils durch Spiegelung der Koordinaten.
              Ihr schafft es immer wieder, dass ich mir entweder dumm oder faul vorkomme! :P

              Wenn ich mich richtig erinnere, wurde sogar nur ein Achtelkreis berechnet und der Rest per Spiegelungen bestimmt. Abbruch also nicht bei x = 0, sondern bei x = y.

              cu,
              Andreas

              --
              Warum nennt sich Andreas hier MudGuard?
              Schreinerei Waechter
              Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          2. Hi there,

            "Kennen" ist übertrieben. Aber ich kann mich da an was erinnern (war noch zu C64-Zeiten).

            Ja, da machte das Verfahren auch noch Sinn; im Browser ist die Berechnung über Winkelfunktionen bequemer, vor allem weil die Darstellung eines sich auf einer kreis- oder ellipsenförmigen Bahn bewegenden Objektes den überwältigenden Teil der Zeit in Anspruch nimmt...

    2. Hi,

      Ein Mathematiklehrer hat mir das (mit Sinus und Cosinus) mal alles erklärt, ich habe jedoch keine Ahnung mehr, wie das eigentlich funktioniert hat...

      kurzes Intermezzo: Jetzt weißt Du, warum das Informatik-Studium zur Hälfte aus Mathe besteht :-)

      Ich setze ein grundsätzliches Verständnis von Sinus und Cosinus voraus.

      Heute habe ich leider weniger Zeit, aber wir scgreiben ja bald wieder Schulaufgabe, da hab ich dann unter der Woche bestimmt genügend Zeit *g*

      Könnte mir das jemand mal in etwa erklären?

      Welche Kreisberechnung speziell benötigst Du?

      Ich will nur das <http://de.selfhtml.org/dhtml/modelle/dom.htm#css_eigenschaftenqtitle=oben genannte Beispiel von SelfHTML>, das ich schon in Projekten selbst verwendet habe verstehen.
      Demnächst, wenn ich mehr Zeit habe, durchsuche ich mal folgende Links nach Brauchbarem.
      (Wenn jemand zu viel Zeit hat oder die Threads (noch) kennt, kann er oder sie ja schon mal sortieren, thx)
      http://de.wikipedia.org/wiki/Sinus, natürlich
      Archiv-Suche nach "Kreis", worüber ich mit Suche nach "Kreis" im Titel folgende gefunden habe:
      http://forum.de.selfhtml.org/archiv/2004/1/t69914/#m402780
      http://forum.de.selfhtml.org/archiv/2004/8/t86545/#m512202
      http://forum.de.selfhtml.org/archiv/2003/11/t62392/#m352703
      http://forum.de.selfhtml.org/archiv/2002/1/t3778/#m21499
      http://forum.de.selfhtml.org/archiv/2002/1/t3778/#m21533
      http://forum.de.selfhtml.org/archiv/2002/5/t13090/#m72342
      http://forum.de.selfhtml.org/archiv/2002/6/t15041/#m83842
      http://forum.de.selfhtml.org/archiv/2002/7/t16675/#m93307
      http://forum.de.selfhtml.org/archiv/2002/8/t19984/#m112122
      http://forum.de.selfhtml.org/archiv/2002/9/t22379/#m124420
      http://forum.de.selfhtml.org/archiv/2002/12/t32569/#m176408 WOW, Walter Zorn war/ist hier im Forum. Ich kenne seine Seite und seine Bibliotheken nur über google
      !!!http://forum.de.selfhtml.org/archiv/1999/6/t4527/#m22175
      Das klingt schon mal ganz richtig...
      Hab nur einmal ein wenig überflogen.

      Vielen Dank für die Antworten, ich werde mir die hier gefundenen Sachen wiegesagt so bald, wie möglich anschauen.
      schönen Sonntagvormittag noch,
      scherzkeks

      so, muss gleich wieder raus ausm i-net :((