Dreieck-Konstruktion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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($bild109191210); // Farbe für den Hintergrund erstellen
                
    imageFill($bild00$hintergrundfarbe); // Grafik mit der Hintergrundfarbe füllen
                
    $farbe imageColorAllocate($bild1272550); // 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$postion3$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
    Zuletzt geändert von Hexcode; 06.12.2009, 19:02.

  • #2
    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?

    Kommentar


    • #3
      Handelt es sich um ein gleichschenkliges Dreieck?



      Peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        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.
        Zuletzt geändert von Hexcode; 06.12.2009, 19:02.

        Kommentar


        • #5
          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
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Zitat von AmicaNoctis Beitrag anzeigen
            • 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 ;-)
            [FONT="Helvetica"]twitter.com/unset[/FONT]

            Shitstorm Podcast – Wöchentliches Auskotzen

            Kommentar


            • #7
              Pytagoras = rechtwinklig... das fällt mir grad erst auf, das kann man ja recht einfach zeichnen...

              Kommentar


              • #8
                OffTopic:
                Zitat von Hexcode Beitrag anzeigen
                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

                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  Macht nix, kann sich ja nicht mehr wehren....
                  Wir werden alle sterben

                  Kommentar


                  • #10
                    [FONT=Arial],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
                    [/FONT]

                    Kommentar


                    • #11
                      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?
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Die Strecken sind gegeben und der oberste Punkt, ich zeig nachher mal das Script wenn ich fertig bin.

                        Kommentar


                        • #13
                          Gemessen an der Präzision der Frage ist deine Antwort absolut enttäuschend.
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            Zitat von Hexcode Beitrag anzeigen
                            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

                            Kommentar


                            • #15
                              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($bild109191210); // Farbe für den Hintergrund erstellen
                                          
                              imageFill($bild00$hintergrundfarbe); // Grafik mit der Hintergrundfarbe füllen
                                          
                              $farbe imageColorAllocate($bild1272550); // 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$postion3$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.

                              Kommentar

                              Lädt...
                              X