Announcement

Collapse
No announcement yet.

Punkt auf einer Geraden?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Punkt auf einer Geraden?

    Hallo Forum,

    mein Anliegen ist zwar eher allgemeiner Natur, jedoch möchte ich es in C umsetzen.

    Ich habe zwei Punkte (A und B) mit ihren Koordinaten (3D) gegeben und möchte nun überprüfen, ob ein weiterer Punkt C auf der Geraden zwischen A und B liegt.

    Das ganze findet in einem Gitternetz statt, wobei C mit einer gewissen Toleranz t von der Geraden entfernt sein darf.

    Rein mathematisch würde ich nun aus den Punkten A und B eine Geradengleichung aufstellen und dann die Punkte C einsetzen. Ich stehe jedoch leider etwas auf dem Schlauch wie ich das in C lösen kann.

    Über eure Hilfe wäre ich euch sehr dankbar.
    Gruß Micha

  • #2
    Ich denke Du solltest Dich etwas mit analytischer Geometrie beschäftigen. Sprich wie bilde ich mathematisch Dinge in einem Raum ab und wie kann ich damit rechnen. Oder Du verwendest ein Framework. In DirectX gibt es bestimmt z.B. auch HitTests für geometrische Objekte.

    Comment


    • #3
      Ja da hast du Recht. Ich hab mal wieder ein paar Sachen aufgefrischt und hab nun die Lösung.
      Falls jemand mal die gleiche Problemstellung hat, für den hier die richtigen Stichpunkte für die Berechnung in 3D (nicht in 2D):

      Die Gerade kann mit Hilfe einer Parametergleichung (z.B. Punkt-Richtungs-Form) aufgestellt werden.
      Der Abstand zwischen dem Punkt und der Geraden berechnet sich über:

      Distanz d = |AC x b| / |b|

      Wobei die Punkte A und B auf der Geraden liegen und der Punkt C geprüft werden soll. Das b ist der Richtungsvektor aus der Parametergleichung, das x steht für das Kreuzprodukt und die || für die Betragsfunktion.

      Comment

      Working...
      X