Linienverlauf realisieren

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

  • Linienverlauf realisieren

    Ich habe ein Problem, für das mir in den letzten Tagen keine so glückliche Lösung eingefallen ist...

    Die Aufgabenstellung ist, einen Linienverlauf zu speichern und dann als Grafik auszugeben. Diese Linie ist nicht gerade, sondern kann auch "schlangenlinien-mäßig" gestaltet sein.

    Der Unterschied zu einem Graphen einer mathematischen Funktion ist, dass man einem X-Wert nicht nur einen Y-Wert, sondern beliebig viele zuweisen kann. Die Linie kann also gerade nach oben gehen.

    Ohne dieses Hindernis wäre es auch recht leicht zu ösen, aber irgendwie habe ich eine Denkblockade... Zudem eine weitere Aufgabe ist, zu berechnen, ob ein Punkt auf der Linie ist, darunter oder darüber... (bzw. links oder recht...)

    Programmiertechnisch ist das Problem eher nicht, sondern eher die logische Seite...

    Zusammengefasst: Wie kann ich eine Schlangenlinie definieren und die relative Position von Punkten zu dieser Linie berechnen?

    Ich hoffe, ich habe mich halbwegs klar ausgedrückt... *g* Ansonsten male ich ein Bild...

  • #2
    Der Unterschied zu einem Graphen einer mathematischen Funktion ist, dass man einem X-Wert nicht nur einen Y-Wert, sondern beliebig viele zuweisen kann. Die Linie kann also gerade nach oben gehen.
    wenn ich mich recht erinnere, geht es auch mit einer funktion von der art
    Code:
    f(y) = x
    aber in deinem fall wirst du wahrscheinlich eine punkt- bzw. besser gesagt pixel-menge speichern müssen, wenn es die resourcen zulassen.

    es gibt schon methoden der approximation, mit der du die geschwungene linie einigermaßen genau beschreiben kannst - entweder mit einer schar lienarer funktionen, die auf bestimmten bereichen definiert ist; oder aber mit transofrmationen anderer art (mir fällt gerade der name nicht ein), um den kurvenverlauf zu erhalten.
    Zudem eine weitere Aufgabe ist, zu berechnen, ob ein Punkt auf der Linie ist, darunter oder darüber... (bzw. links oder recht...)
    was heißt denn schon "oben" oder "rechts", wenn die doch so abstrakt verlaufen kann?
    Zusammengefasst: Wie kann ich [...] die relative Position von Punkten zu dieser Linie berechnen?
    hab mal gesehen, wie es einer gelöst hatte, indem er radiale grenzen gesucht hat - um den punkt x,y wird ein kreis mit dem radius r gezogen. schneidet er die kurve nicht, so wird r stufenweise inkrementiert. ist eine tangente bzw. schnittpunkte gefunden, werden diese mit dem ausgangspunkt x,y verbunden, so dass eine gerade entsteht, anhand derer steigung und länge aussage getroffen werden kann, "in welcher richtung" und "in welchem abstand" die kurve von dem punkt liegt.

    hab selbst nie damit gearbeitet, beziehe mein halbwissen ausschließlich aus erzählungen anderer.

    Kommentar


    • #3
      Mal angenommen, du hast eine Funktion, die da lautet:
      Code:
      f(x) = - x² + 5x + 3
      und einen Punkt P(3|5)

      Was du als erstes brauchst, ist der Punkt auf der Kurve, der den kleinsten Abstand zum Punkt P hat.

      Der Abstand von zwei Punkten A(a1|a2) und B(b1|b2) berechnet sich allgemein mit der Funktion abstand(A, B) = wurzel{(a1 - b1)² + (a2 - b2)²} (Man möge mir verzeihen, dass ich die Wurzel so "unmathematisch" geschrieben habe)

      In deinem Fall wäre das (der gesuchte Punkt sei Q(x|f(x) ):
      abstand((3|5), (x|f(x)): = wurzel{(3 - x)² + (x² - 5x + 2)²)}

      Davon suchst du jetzt das Minimum (Stichwort 1. und 2. Ableitung), danach errechnest du die y-Werte zu den ermittelten X-Werten und musst dann nur noch die Länge der Strecke zwischen zwei Punkten errechnen

      Viel Spaß!

      Alternativ kannst du auch eine Normale an die Kurve zu ermitteln, die durch P(3|5) geht und dann die Abstände zwischen P und den Schnittpunkten der Normalen mit der Kurve ausrechnen.


      EDIT:
      Ich hoffe mal, ich hab' nicht irgendwelchen Murks geschrieben
      Zuletzt geändert von mrhappiness; 12.10.2005, 08:07.
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        Vielen Dank für eure bisherigen guten Antworten. Wäre bloß die Schulzeit noch nicht so lange her...

        Ich werde mal schauen, evtl. werde ich den Kram auch vereinfachen... Oder Mathematik wird mein neues Hobby...

        Kommentar

        Lädt...
        X