3 Punkte im Koordinaten System ... [erledigt]

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

3 Punkte im Koordinaten System ... [erledigt]

Beitrag von AUGE_OHR »

wenn ich 3 Koordinaten Paare habe kann ich mit GraLine() ein Dreieck zeichnen.
... und wie berechne ich damit Längen / Winkel ?
Zuletzt geändert von AUGE_OHR am Mi, 09. Mär 2016 6:32, insgesamt 1-mal geändert.
gruss by OHR
Jimmy
Benutzeravatar
komnick
UDF-Programmierer
UDF-Programmierer
Beiträge: 75
Registriert: Mi, 04. Jun 2014 9:56
Wohnort: Berlin
Hat sich bedankt: 1 Mal
Danksagung erhalten: 5 Mal

Re: 3 Punkte im Koordinaten System ...

Beitrag von komnick »

Hallo Jimmy,
die Länge einer Strecke bekommst du mit Pythagoras:
Wenn die Strecke zwischen den Punkten (x1,y1) und (x2,y2) die Länge c hat, gilt (x2-x1)^2+(y2-y1)^2=c^2.
Wenn du damit alle Seiten deines Dreiecks bestimmt hast, kannst du die Winkel mit dem Cosinussatz ermitteln.
Gruß
Martin
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: 3 Punkte im Koordinaten System ...

Beitrag von Herbert »

Du hast ein Dreieck, Seiten a.b.c
Alfa ist der Winkel zwischen b und c. Dann ist sin(alfa)=a/c oder cos(alfa)=b/c
Gilt aber nur bei rechtiwinkligem Dreieck!

Hast du irgend ein Dreieck, musst du den Sinussatz oder den Cosinussatz nehmen.
Sinussatz
Sinussatz
sinussatz.jpg (5.1 KiB) 4409 mal betrachtet
Die Summe der Innenwinkel ist immer 180 Grad.

So gilt: a/sin(alfa)=b/sin(beta)=c/sin(gamma)
heisst, dass sin(beta)=b/a * sin(alfa). Das ist der Sinussatz.
Kannst auch umdrehen und sagen: a/b = sin(alfa)/sin(beta)

Der Cosinussatz geht so: a^2 = b^2+c^2 - 2bc*cos(alfa)

oder schau hier: http://www.arndt-bruenner.de/mathe/scri ... chnung.htm
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: 3 Punkte im Koordinaten System ...

Beitrag von AUGE_OHR »

hi,

Danke für euer Antworten. Mein Problem : habe nur die Koordinaten und sonst nichts.

wenn 2 Koordinaten auf einer horizontalen oder vertikalen Linien liegt wäre der Abstand ja einfach und ich könnte, mit Pythagoras , schnell den Rest berechnen.
wenn ich mit GraLine() 2 Punkte verbinde ... dann müsste man doch raus bekommen "wie lang" die Linie ist :?:
DLT_PAS.JPG
DLT_PAS.JPG (179.79 KiB) 4398 mal betrachtet
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: 3 Punkte im Koordinaten System ... [erledigt]

Beitrag von AUGE_OHR »

habe eine Antwort in der Xoanon LIB gefunden ;)

Code: Alles auswählen

FUNCTION Distance(aPos1,aPos2)
/* Local variable declaration */
LOCAL nLen:=Len(aPos1), i, nTotal

  /* For 1,2,3, or notional Dimensions, perform a Distance calculation */
  nTotal:=0
  FOR i:=1 TO len(aPos1)
    nTotal+=((aPos1[i]-aPos2[i])^2)
  NEXT i

RETURN Sqrt(nTotal)
gruss by OHR
Jimmy
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: 3 Punkte im Koordinaten System ...

Beitrag von Herbert »

Ja, wenn du die Koordinaten der Endpunkte einer Linie kennst, kannst doch problemlos die Länge bestimmen.
[img]
Dreieck.jpg
Dreieck.jpg (6.62 KiB) 4385 mal betrachtet
[/img]
Du willst die Strecke b bestimmen: hc is die Differenz der Y-Koordinaten. p ist die Differenz der x-Koordinaten. So bekommst du virtuell ein rechtwinkliges Dreieck. Jetzt kannst den Pytagoras anwenden. b im Quadrat ist gleich hc im Quadrat plus p im Quadrat.
Grüsse Herbert
Immer in Bewegung...
Antworten