[Funktion] Radiant und Tangente im Rechteck

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Funktion] Radiant und Tangente im Rechteck

    Hallo

    Sorry erstmal für den beschissenen Titel, wusste echt keinen Besseren!

    Also es geht um die mathematische Berechnung zweier Punkte:



    Die beiden roten Punkte kenne ich (x,y Achse). Auch die Höhe und Breite des Rechtecks sowie die Mittelpunkte beider Kreise und deren Radius.
    Nun, kann mir jemand einen Denkanstoss geben wie ich die beiden Grünen Kreise herausfinden kann( x,y)? Mittels Intersection prüfen, wo sie sich schneiden dauert leider zu lange und benötigt zu viele Resourcen, da ich diesen Algorithmus über 500 Mal Aufrufen möchte.


    Ich habe schon daran gedacht, den äusseren Kreis bis zu den Schnittecken des Rechtecks zu strecken, doch es entstand kein vernünftiges Resultat.

    Über jegliche Hilfe bin ich dankbar!

    Gruss
    fletschge

  • #2
    Re: [Funktion] Radiant und Tangente im Rechteck

    Tja, da würd'sch ma da anfangen:
    http://de.wikipedia.org/wiki/Kategorie:Formelsammlung

    Geometrie, analytische Geometrie
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Du hast zwei punkte. Beide liegen im wertebereich einer linearen
      funktion deren graph eine gerade ist die durch beide punkte verläuft.
      Die gerade steht im einem punkt senkrecht (orthogonal) zum gesuchten
      funktionsgraphen. Damit du die funktionsgleichung des gesuchten
      graphen erhältst brauchst du die steigung, (einen punkt hast du
      ja schon). Da die gerade zwischen den gegeben punkten orthogonal
      zur gesuchten geraden verläuft kennst du die steigung der gesuchten
      funktion. Es ist der negative kehrwert der gegeben funktion.
      Nun hast du einen punkt und die steigung. Lineare funktionen
      folgen der vorschrift y = mx + b. x,y und m hast du. Also bekommst
      du auch b. Wenn du b hast, hast du also auch die funktionsgleichung.
      Der eine grüne gesuchte punkt ist eine nullstelle der funktion. Der
      andere der y-achsen-schnittpunkt.

      greets
      (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

      Kommentar


      • #4
        [Funktion]

        Danke Closure!

        Nur leider, wie du selber geschrieben hast, erhalte ich auch einen Schnittpunkt, den ich wieder abfragen muss und das dauert (leider) zu lange
        Aber was meinst du mit

        einen punkt hast du ja schon
        ? den Einen grünen auf der 0 achse?

        In diesem Falle ist die Tangente vom 90°-Winkel zwischen den beiden roten Punkten definiert, aber woher berechnest du nun die Richtung (Grad) dieser Funktion? Du musst diesen ja "drehen".

        Kann sein dass ich nichts begriffen habe

        Wenn ichs mir recht überlege würde es eigentlich reichen wenn ich anstatt des Rechtecks nen dritten Kreis (imaginär) zeichnen würde, auf dem dann beide grünen punkte (weiter eingerückt als auf dem Bild) liegen. Also würde es sicher ne Möglichkeit geben das mit Radiant rauszukriegen, ich werde mich morgen weiter damit auseinandersetzen.


        P.S.: Seit wann benutzt man in linearen Gleichungen b? ist das was anderes als c (constant) ?

        Besten Dank

        Kommentar


        • #5
          Es ist die Frage, ob man mit php auch Gleichungssysteme lösen kann, denn das setzt der Weg von Closure voraus.

          Falls soetwas bisher nicht in php implementiert wurde, gibt es hier Möglichkeiten, das numerisch zu machen;
          http://de.wikipedia.org/wiki/Liste_n...ichungssysteme
          Zuletzt geändert von em-!x; 13.10.2006, 00:11.

          Kommentar


          • #6
            Re: [Funktion]

            Original geschrieben von fletschge

            den Einen grünen auf der 0 achse?
            Nein. Du hast doch geschrieben du kennst die koordinaten der beiden
            roten punkte. Und die kennst die maße des rechtecks.
            Die linke und die obere seite des selben bilden mit ihrem berührungspunkt einen
            teil eines kartesischen koordinatensystems. Du hast genau den
            4ten quadranten.

            Aus zwei punkten kann man die geraden gleichung bestimmen.
            Stichwort 2 punkte form. Das machst du genau mit der geraden die durch
            die beiden gegebenen roten punkte läuft.

            Da der eine rote punkt nicht nur element des wertebereichs der gegeben
            funktion ist sondern auch der gesuchten, hast du automatisch also auch
            einen punkt für die gesuchte funktion. Aus einem punkt kannst du aber
            die geradengleichung nicht bestimmen. Dafür fehlt dir z.B. noch die steigung.
            Dein glück ist nun dass die gegebene gerade orthogonal auf der gesuchten
            steht. Das heisst du kannst aus der steigung der gegebenen geraden die
            steigung der gesuchten ermitteln (negatives reziproke). Jetzt hast du einen
            punkt und eine steigung und kannst die geradengleichung ermitteln.
            Dann sieht man dass ein punkt eine nullstelle ist. Kann also einfach ermittelt
            werden. Der ordinaten-schnittpunkt ist dann ebenso einfach zu finden.

            Es geht natürlich auch mittels gleichsetzung, da ja der (linke) rote punkt
            sowohl zur ergebnismenge der gesuchten also auch zur ergebnismenge
            der gegebenen funktion gehört.


            In diesem Falle ist die Tangente vom 90°-Winkel zwischen den beiden roten Punkten definiert, aber woher berechnest du nun die Richtung (Grad) dieser Funktion? Du musst diesen ja "drehen".
            Ich hab angenommen das sei immer so ? War das nur ein beispiel ?
            Dann muss man das doch anders lösen.


            P.S.: Seit wann benutzt man in linearen Gleichungen b? ist das was anderes als c (constant) ?
            Ist egal wie dus nennst. Wichtig ist nur dass die variable im selben kontext
            nicht schon für etwas anderes benutzt wird.

            greets
            Zuletzt geändert von closure; 13.10.2006, 08:52.
            (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

            Kommentar


            • #7
              Re: Re: [Funktion]

              @closure:

              Aha jetzt versteh ich endlich! Das negative Reziproke (Kehrwert) ergibt die Geradenfunktion in einem 90° Winkel. Und da eine der Koordinaten der grünen Punkte immer 0 ist, lässt sich der andere einfach ermitteln, stimmt!

              Ich hab angenommen das sei immer so ? War das nur ein beispiel ?
              Dann muss man das doch anders lösen.
              Nein ist schon richtig so, hab mich ein wenig unsauber artikuliert (mein "Fall" bezog sich auf die Grafik und nicht auf dein geschriebener Text).


              Ist egal wie dus nennst. Wichtig ist nur dass die variable im selben kontext
              nicht schon für etwas anderes benutzt wird.
              Ich hab ja nur diese lineare Funktion im Kontext. Aber egal ist ja sowieso nicht relevant

              Schon mal Danke an Closure (und alle anderen auch, jedoch waren mir die Formelsammlungen und Liste der nichtlinearen Funktionen bereits geläufig )

              Greets

              fletschge

              Kommentar


              • #8
                versuchen wir es doch mit etwas systematischer Mathematik zu lösen.
                Das Koordinatensystem ist (x,y), wobei x waagrecht nach rechts und y senkrecht nach unten gehen. Der Kreismittelpunkt heisse A, der Tangentialpunkt B, der laufende Punkt auf der Tangente heisse T, der Schnittpunkt mit der x-Achse U, derjenige mit der y-Achse V.

                Dann lautet die Gleichung der Tangente vektoriell sehr einfach. (T-B).(B-A) = 0.
                In Koordinaten gibt das:
                (Tx-Bx)*(Bx-Ax) + (Ty-By)*(By-Ay)=0.

                Für die Punkte U und V auf der Tangente gilt diese Gleichung auch, indem der Buchstabe T durch U oder V ersetzt wird.
                (Ux-Bx)*(Bx-Ax) + (Uy-By)*(By-Ay)=0.
                (Vx-Bx)*(Bx-Ax) + (Vy-By)*(By-Ay)=0.

                Für den Punkt U auf der x-Achse musst du Uy=0 setzen, die Gleichung lautet also:
                (Ux-Bx)*(Bx-Ax) + (0-By)*(By-Ay)=0.
                Das löse mit einfacher Algebra nach Ux auf.

                für den Punkt V auf der y-Achse musst du Vx=0 setzen, die Gleichung lautet also:
                (0-Bx)*(Bx-Ax) + (Vy-By)*(By-Ay)=0.
                Das löse mit einfacher Algebra nach Vy auf.

                Das war eine interessante Fragestellung.

                Kommentar


                • #9
                  Hallo begun k!

                  Erst mal Danke für deinen sehr wertvollen Beitrag. An eine vektorielle Lösung hab ich noch gar nicht gedacht


                  Original geschrieben von begun k
                  versuchen wir es doch mit etwas systematischer Mathematik zu lösen.
                  Das Koordinatensystem ist (x,y), wobei x waagrecht nach rechts und y senkrecht nach unten gehen. Der Kreismittelpunkt heisse A, der Tangentialpunkt B, der laufende Punkt auf der Tangente heisse T, der Schnittpunkt mit der x-Achse U, derjenige mit der y-Achse V.
                  Geh ich richtig in der Annahme dass T entweder die X oder die Y Achse darstellt? Also Ux oder Vx (Ich möcht das schliesslich noch kapieren )


                  Dann lautet die Gleichung der Tangente vektoriell sehr einfach. (T-B).(B-A) = 0.
                  In Koordinaten gibt das:
                  (Tx-Bx)*(Bx-Ax) + (Ty-By)*(By-Ay)=0.

                  Für die Punkte U und V auf der Tangente gilt diese Gleichung auch, indem der Buchstabe T durch U oder V ersetzt wird.
                  (Ux-Bx)*(Bx-Ax) + (Uy-By)*(By-Ay)=0.
                  (Vx-Bx)*(Bx-Ax) + (Vy-By)*(By-Ay)=0.

                  Für den Punkt U auf der x-Achse musst du Uy=0 setzen, die Gleichung lautet also:
                  (Ux-Bx)*(Bx-Ax) + (0-By)*(By-Ay)=0.
                  Das löse mit einfacher Algebra nach Ux auf.

                  für den Punkt V auf der y-Achse musst du Vx=0 setzen, die Gleichung lautet also:
                  (0-Bx)*(Bx-Ax) + (Vy-By)*(By-Ay)=0.
                  Das löse mit einfacher Algebra nach Vy auf.
                  Is ja super! *freu*

                  Das war eine interessante Fragestellung.
                  Ich habe viele solcher Kreise (ca 10). Nun gehts darum, dass ich weitere Punkte auf äusseren Kreisen mit einem inneren Punkt verbinde, dabei sollen sich die Verbindungen (Gerade) nicht schneiden. Das geht nun mit der Überprüfung, sie dürfen auch nicht die Kreise schneiden (daher diese Formel).

                  Besten Dank!

                  Gruss
                  fletschge

                  Kommentar

                  Lädt...
                  X