Gerade von Punkt zu Punkt und darüer hinaus



  • Hi,

    ich würde gerne folgendes machen:
    Ich habe eine Postion eines Spielers (X/Y),
    der Spieler klickt an eine Stelle des Spielfeldes (X/Y).
    Vom Spieler zu diesem Punkt und darüber hinaus (!) im selben Winkel soll nun ein Gerade gezeichnet werden. Außerdem möchte ich gerne von einem dritten Punkt (X/Y) überprüfen, ob dieser auf der dadurch gezeichneten Gerade liegt.
    Wie mache ich das?

    Danke für Hilfe,
    Jakel



  • Hallo

    Vom Spieler zu diesem Punkt und darüber hinaus (!) im selben Winkel soll nun ein Gerade gezeichnet werden.

    Siehe die Methoden TCanvas::MoveTo/LineTo

    Außerdem möchte ich gerne von einem dritten Punkt (X/Y) überprüfen, ob dieser auf der dadurch gezeichneten Gerade liegt

    Mit einfacher Geometrierechnung. Stichwort Strahlensatz/Verhältnisrechnung.

    bis bald
    akari



  • akari schrieb:

    Vom Spieler zu diesem Punkt und darüber hinaus (!) im selben Winkel soll nun ein Gerade gezeichnet werden.

    Siehe die Methoden TCanvas::MoveTo/LineTo

    Ja, damit kann ich vom Spieler zum Ziel, aber ich möchte darüber hinaus bis ans Ende des Forms.

    akari schrieb:

    Außerdem möchte ich gerne von einem dritten Punkt (X/Y) überprüfen, ob dieser auf der dadurch gezeichneten Gerade liegt

    Mit einfacher Geometrierechnung. Stichwort Strahlensatz/Verhältnisrechnung.

    Das kam bei mir in der Schule noch nich dran 😛

    Trotzdem Danke ^^
    Jakel



  • Hallo

    Ja, damit kann ich vom Spieler zum Ziel, aber ich möchte darüber hinaus bis ans Ende des Forms.

    Fakt ist : Der Rechner braucht einen Zielpunkt Z. Nehmen wir mal an dein Form hat die Breite X, also weißt du schon mal das dein gesuchter Zielpunkt die Koordinate X hat. Das Y zu diesem Punkt kannst du nun aus P1 und P2 berechnen, und zwar ebenfalls mit den genanten Grundformeln. Schlag mal bei Wikipedia nach, da ist das sicher erklärt.

    bis bald
    akari



  • Und was is wenn der Zeilpunkt am oberen Rand der Forms ist, also Y feststeht?
    Das muss ich ja auch irgendwie rausfinden



  • Dieser Thread wurde von Moderator/in Jansen aus dem Forum VCL (C++ Builder) in das Forum Mathematik verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Häng doch den Vektor von deinem Ausgangspunkt zu deinem Klickpunkt an den Klickpunkt dran... Damit ist er dann doppelt so lang... Dann schaust du, ob der 2. Punkt noch innerhalb des Spielfelds liegt. Das wiederholst du solange, bis der 2. Punkt eben nicht mehr im Spielfeld liegt. Dann musst du nur noch den Schnittpunkt zwischen dem letzten Vektor und deiner Spielfeldbegrenzung(sind ja wohl auch 4 Geraden) bestimmen.



  • Geradengleichung von deinem Ausgangspunkt zum Klickpunkt aufstellen und dann einfach für x den Abstand des Spielfeldrandes von deinem Koordinatenursprung in x-Richtung einsetzen. Dann hast den y-Wert des Schnittpunktes deiner Linie mit dem Rand des Spielfeldes und kannst nach dort deine "unendliche" Linie zeichnen.



  • Im großen und ganzen ja, die idee hat ich auch schon, aber ich weiß jetzt nich genau wie das dann ausehen würde. Und außerdem müsste man vorher noch herausfinden, mit welcher Seite des Randes der Strahl sich schneidet.


Anmelden zum Antworten