C++ in OpenSceneGraph Abstand 2er Punkte



  • Hallo zusammen,
    das ist meine erste Frage, also wenn ich was falsch mach, einfach posten 😛

    Zu meinem Promblem. Meine Aufgabe zur Zeit ist es den Abstand 2er Punkte die ich angeklickt habe zufinden und deren Abstand zu bemessen.

    soweit hab ich es auch gemacht.

    Jetzt ist das Problem aber, dass ich Eckpunkte (erstmal im 2D) automatisch finden soll. Die Punkte werden von mir gespeichert wenn ich beispielsweise ein 3Eck erzeugt habe.

    Meine Idee: Wenn ich nah dran bin (an so einem Punkt) soll er automatisch die Koordinaten übernehmen.
    Aber ich bekomm das nicht umgesetzt... für Hilfen und andere Ideen bin ich sehr Dankbar.



  • Wie mainst du das ?
    Das ist C++, was du suchst ist wahrscheinlich WINAPI.

    Edit: Oh , Sorry. Da hab ich was falsch verstanden. Ich dachte du suchst Möglichkeiten die Mausposition o.ä. zu ermitteln.



  • Wie meinst?
    ich mach das in OpenSceneGraph, aber programmiersprache ist c++.



  • Hallo 82kolu,

    "Nah dran" könnte man mit einem Kreis um einen bekannten Punkte definieren.

    Wenn Dein neuer Punkt innerhalb des Kreises ist, dann übernimmst Du das Zentrum des Kreises als neue Position.

    Google für Point in circle

    Herzliche Grüsse
    Walter



  • Sehr schöne Idee Walter, danke.
    jedoch wenn ich versuche den Mittelpunkt eines Kreises zu finden (bzw wenn ich danach google) dann stoß ich immer auf " #include<graphics.h> "

    und ich herausgefunden habe ist dieses include veraltet und nur in DOS brauchbar...

    ist das so? wenn nein wie bekomm ich es zum Laufen, ich schaffs nicht.

    wenn ja, hast du oer sonst wer eine Idee wie ich das mit dem mittelpunkt lösen könnte?



  • Wenn du das rechnerisch lösen kannst, und in der Schule gut aufgepasst hast, wirst du in der Lage sein mit den trigonometrischen Funktionen aus <complex> (sprich: Sinus, Kosinus) deine eigene Definition nach erstellen.



  • Ich bin gerade leicht am verzweifeln.

    Also das mit dem Mittelpunkt an sich sollte kein problem werden, den muss ich ja eig auch gar nicht berechnen.
    ich kann ja einfach sagen, dass wenn in dem kreis ein klick gemacht wurde soll er die Koor. von dem punkt nehmen der in dem Kreis liegt.

    nur jetzt bekomm ich keinen Kreis hin. ich bin leider nur Mathematiker kein Informatiker.
    ist glaub ich nicht schwer nur mir fehlt der Ansatz



  • 82kolu schrieb:

    ich bin leider nur Mathematiker kein Informatiker.

    Na, das sind doch die besten Voraussetzungen. Dann schnapp dir mal ein Schulbuch (7. Klasse reicht vermutlich) und schau, wie man mit dem Satz des Pythagoras die Distanz zwischen zwei Punkten ermitteln kann. Wenn diese unterhalb eines Schwellenwertes liegt, bekommt der Punkt die Koordinaten zugewiesen.



  • Hallo 82kolu,

    also ich habe das hier gefunden:

    "In general, x and y must satisfy (x-center_x)^2 + (y - center_y)^2 < radius^2."

    Damit kann man doch eine Funktion machen

    bool NahDran (int fangX, int fangY, int radius, int x, int y)
    {
      int hx = abs (x - fangX); 
      int hy = abs (y - fangY); 
      return ((hx * hx) + (hy * hy)) < (radius * radius)
     }
    

    Herzliche Grüsse
    Walter



  • Danke hat mir sehr geholfen!


Anmelden zum Antworten