Dreieckspunkte berechnen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
neuer1993
Mitglied
Beiträge: 66
Registriert: 22.09.2008 19:37
Wohnort: Köln

Dreieckspunkte berechnen

Beitrag von neuer1993 »

Hallo,
ich habe folgendes Script:

Code: Alles auswählen

            $a = $_GET['a'];
            $b = $_GET['b'];
            $c = $_GET['c'];
            header("Content-type: image/png"); // Grafik-Header (image/png) an den Browser senden
            $breite = 250; // Breite der Grafik
            $hoehe = 150; // Höhe der Grafik
            $bild = imageCreateTruecolor($breite, $hoehe); // Grafik erstellen
            $hintergrundfarbe = imageColorAllocate($bild, 109, 191, 210); // Farbe für den Hintergrund erstellen
            imageFill($bild, 0, 0, $hintergrundfarbe); // Grafik mit der Hintergrundfarbe füllen
            $farbe = imageColorAllocate($bild, 127, 255, 0); // Farbe für das Dreieck erstellen
            $pos = $b/2;
            $postion = array(5,5,   $b+5,5,   $pos,$c); // Koordinaten des Dreiecks auf der Grafik
            imageFilledPolygon($bild, $postion, 3, $farbe); // Dreieck einzeichnen
            imagePng($bild); // Grafik an den Browser senden
            imageDestroy($bild); // Grafik aus dem Server-Speicher entfernen
Nun zum Problem, die oberen beiden Punkte sind ja fest gegeben und auch richtig, allerdings benötige ich eine Formel um den letzten Punkt anhand der Steckenlängen zu errechnen.
Gibt es so eine Formel, bzw. kennt die auch einer?
mfg
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Re: Dreieckspunkte berechnen

Beitrag von Boecki91 »

Ich hab ich bisher eher selten in PHP gemalt

Du hast anscheinend 3 Seiten gegeben
imageFilledPolygon will x und y Werte der reihe nach.#
Nehmen wir mal an a = 10 b= 20 c=40
wie wird das dann bei dir ablaufen:
  1. X:5 Y:5
  2. X: 25 Y: 5 (Damit wäre die Grundlinie gezeichnet) Gezeichnete Linie ist 20 px lang
  3. X: 10 Y: 40 gezeichnete Linie ist 29,2px lang
Die letzte Seite ist dann 25,5px lang, also wohl nicht so ganz wie gewollt

Du brauchst wohl noch ein paar Werte, versuch es mal mit dem Kosinussatz.
[ externes Bild ] (Bild von Wikipedia)
dann kannst du mit Sinus und Cosinus den fehlenden Punkt berechnen. (Ich geh mal davon aus das du 16 Jahre alt bist)
Bei solchen einfachen geometrischen Sachen empfehle ich einen Bleistift, Geodreieck, Zirkel und Zettel, da kann man schneller Zeichnen und Formeln umstellen. Wenn du es schaffst die Dreiecke ohne Zirkel zu Zeichnen kannst du das auch mit PHP lösen.

Achtung: Bei 3 Seiten ist eine Lösbarkeit nicht immer gegeben so müssen die beiden kurzen Seiten zusammen größer sein als die lange Seite.
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
HJW
Mitglied
Beiträge: 1291
Registriert: 20.04.2007 20:48
Wohnort: 45481 Mülheim an der Ruhr
Kontaktdaten:

Re: Dreieckspunkte berechnen

Beitrag von HJW »

Hallo,

wenn das Dreieck nicht beliebig auf dem Desktop liegt, sondern eine waagerechte oder senkrechte Seite hat, gehts auch ohne Winkelfunktion.

In einem beliebigen Dreieck von dem die drei Seiten bekannt sind (Einschränkung: siehe Boecki91)
rechnet sich die Fläche wie folgt:
F=Quadratwurzel aus s*(s-a)*(s-b)*(s-c) wobei s=(a+b+c)/2 ist.
h=2F/Grundlinie
die Abschnitte auf der Grundlinie kannst du dann mit dem Pythagoras ausrechnen.

Was jetzt leichter zu nutzen ist???
Antworten

Zurück zu „Coding & Technik“