| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

06-12-2009, 16:40
|
|
Hexcode
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 13
|
|
Dreieck-Konstruktion
Hallo,
ich habe folgendes Script:
PHP-Code:
$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
Geändert von Hexcode (06-12-2009 um 19:02 Uhr)
|

06-12-2009, 17:16
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Die beiden bekannten Punkte und die Streckenlängen zum gesuchten Punkt beschreiben zwei Kreise. Wenn die Summe der beiden Streckenlängen kleiner ist als der Abstand der zwei Punkte, haben die beiden Kreise immer zwei Schnittpunkte. Beide Schnittpunkte sind Lösungen, d.h. beide Schnittpunkte spannen mit den bekannten Punkten ein Dreieck auf (gespiegelt an der Verbindung der beiden bekannten Punkte).
Du weißt hoffentlich wie man Kreisschnittpunkte berechnet. Ich gehe darauf erstmal nicht weiter ein, weil ich in deinem Script ganz andere Probleme sehe. Was machst du z.B. mit $a?
|

06-12-2009, 17:18
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.310
|
|
Handelt es sich um ein gleichschenkliges Dreieck?
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

06-12-2009, 18:11
|
|
Hexcode
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 13
|
|
Die Strecken längen werden per Pytagoras errechnet, d.h. 2 Werte gegeben letzter wird errechnet.
Somit können die Schenkel auf unterschiedlich lang sein.
Mit $a mach ich derzeit noch gar nichts Warum auch?
Das brauch ich ja erst später bzw. jetzt zum berechnen.
Geändert von Hexcode (06-12-2009 um 19:02 Uhr)
|

06-12-2009, 18:41
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
irgendwie habe ich das Gefühl, dass du dein Vorhaben nicht ausreichend geschildert hast. Dem Code nach erzeugst du immer gleichschenkliche Dreiecke. Als Peter dich darauf ansprach, kamst du mit dem Satz des Pythagoras, der aber nur für rechtwinklige Dreiecke gilt. Grundsätzlich für Dreiecke ist, dass du immer mindestens 3 Angaben brauchst, um sie jeweils eindeutig zu beschreiben: - 3 Seitenlängen
- Seitenlänge, Winkel, Seitenlänge
- Winkel, Seitenlänge, Winkel
Ausnahmen von dieser Regel sind Sonderfälle, weil die durch Contraints fehlende Angaben ergänzen, z. B. gleichseitiges Dreieck: eine Seitenlänge legt 3 Seitenlängen fest.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

06-12-2009, 18:48
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
Zitat:
Zitat von AmicaNoctis
- 3 Seitenlängen
- Seitenlänge, Winkel, Seitenlänge
- Winkel, Seitenlänge, Winkel
Ausnahmen von dieser Regel sind Sonderfälle, weil die durch Contraints fehlende Angaben ergänzen, z. B. gleichseitiges Dreieck: eine Seitenlänge legt 3 Seitenlängen fest.
|
Danke. Ich wollt schon was ähnliches schreiben. Da ich aber immer eine Matheniete war, hatte ich zu viel Angst, mich zu vertun – und als ich endlich fertig war mit dem Durchackern diverser Wikipedia-Artikel, seid ihr hier schon fast fertig ;-)
|

06-12-2009, 18:50
|
|
Hexcode
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 13
|
|
Pytagoras = rechtwinklig... das fällt mir grad erst auf, das kann man ja recht einfach zeichnen...
|

06-12-2009, 18:53
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
OffTopic:
Zitat:
Zitat von Hexcode
Pytagoras = rechtwinklig
|
Erst nimmst du ihm sein h weg und dann definierst du ihn als rechtwinklig? Der Mann hat bei dir aber nicht viel zu lachen 
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

06-12-2009, 18:56
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Macht nix, kann sich ja nicht mehr wehren....
|

06-12-2009, 18:57
|
|
Hexcode
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 13
|
|
,Im rechtwinkligen Dreieck ist die Summe der Kathetenquadrate gleich dem Hypotenusenquadrat."= Pytagoras, heißt das Dreieck ist rechtwinklig?
http://de.wikipedia.org/wiki/Satz_des_Pythagoras
Bei Punkt C ist er Rechtwinklig
|

06-12-2009, 19:06
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Willst du nicht vielleicht nochmal von vorne erklären? Wo ist welcher Punkt in der Grafik? Welche Werte sind fest, welche sind vom Benutzer veränderbar, welche werden berechnet?
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

06-12-2009, 19:20
|
|
Hexcode
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 13
|
|
Die Strecken sind gegeben und der oberste Punkt, ich zeig nachher mal das Script wenn ich fertig bin.
|

06-12-2009, 19:24
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Gemessen an der Präzision der Frage ist deine Antwort absolut enttäuschend.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

06-12-2009, 19:30
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.310
|
|
Zitat:
Zitat von Hexcode
Die Strecken sind gegeben und der oberste Punkt, ich zeig nachher mal das Script wenn ich fertig bin.
|
Zeig uns doch bitte erst mal das Dreieck. Also so, wie es aussehen sollte.
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

06-12-2009, 19:44
|
|
Hexcode
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 13
|
|
PHP-Code:
$a = $_GET['a']; $b = $_GET['b']; $strecke_a = $a; $strecke_b = $b; $strecke_c = $_GET['c']; while($a > 1000 OR $b > 1000) { $a= $a/2; $b= $b/2; } while($a < 100 OR $b < 100) { $a= $a*2; $b= $b*2; } header("Content-type: image/png"); // Grafik-Header (image/png) an den Browser senden $breite = $b+20; // Breite der Grafik $hoehe = $a+20; // 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 $postion = array(10,10, 10,$a+10, $b+10,$a+10); // Koordinaten des Dreiecks auf der Grafik imageFilledPolygon($bild, $postion, 3, $farbe); // Dreieck einzeichnen $textfarbe = imageColorAllocate($bild,0,0,0); // Textfarbe für Beschriftungen imagestring($bild,5,$b+10,$a+5,"A",$textfarbe); // Beschriftung für Ecke A einfügen. imagestring($bild,5,2,-2,"B",$textfarbe); // Beschriftung für Ecke B einfügen. imagestring($bild,5,2,$a+5,"C",$textfarbe); // Beschriftung für Ecke C einfügen. imagestring($bild,2,12,$a/2+5,"a=".$strecke_a."cm",$textfarbe); // Beschriftung für Strecke a einfügen. imagestring($bild,2,$b/2,$a-3,"b=".$strecke_b."cm",$textfarbe); // Beschriftung für Strecke b einfügen. imagestring($bild,2,$b/2+15,$a/2+5,"c=".$strecke_c."cm",$textfarbe); // Beschriftung für Strecke c einfügen. imagePng($bild); // Grafik an den Browser senden imageDestroy($bild); // Grafik aus dem Server-Speicher entfernen
Das ist jetzt der fertige Code  funktioniert ganz gut.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|