Algo gesucht: grösstes Dreieck im Quadrat

  • Allgemein

Es gibt 44 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Algo gesucht: grösstes Dreieck im Quadrat

    Hi!
    Ich habe auch eine schöne Knobelaufgabe.
    Es ist ein Quadrat mit einer bestimmten Kantenlänge gegeben. In dieses Quadrat soll ein Dreieck eingezeichnet werden, wo nur die 3 Winkel gegeben sind. Dieses Dreieck soll mit der größtmöglichen Fläche im Quadrat dargestellt werden.
    Graphisch konnte ich das Problem schon lösen. Per Code hab ich da noch Probleme. Da ich einfach zu wenig Ahnung habe.
    MfG Helge
    naja - wie löst du das denn grafisch?

    Edit:
    Also mir kommt da eine pseudo-grafische Idee: Man geht aus von einem Quadrat mit eingeschriebenem Kreis. In diesen Kreis malt man das Dreieck. Und nun dreht man das Dreieck und such den Winkel, bei dem alle Ecken einen gleichgroßen Abstand zur nächsten Quadrat-Wand haben. Diesen Drehwinkel halten, und dann kann man das Dreieck proportional vergrößern, und müsste optimale Größe haben.

    Aber geht mir wie dir: Das geht weit über meine Geometrie.
    Genau genommen bin ich damit überfordert, ein 3-Eck, von dem mir nur die Winkel bekannt sind, korrekt in einen gegebenen Kreis einzupassen.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Also zuerst schaut man ob 2 Winkel unter 45° sind.
    Sollten 2 Winkel unter 45°sein, wird das Dreieck Diagonal in das Quadrat mit der längsten Seite eingezeichnet.
    Ansonsten wird der , wenn vorhanden , kleinste Winkel(=Punkt) auf Koordinate 0,0 gesetzt. Die Längste Seite des Dreieckes wird entlang der x- oder der y-Koordinate. Bis zum nächsten Eckpunkt des Quadrates. Durch einzeichnen der beiden Winkel, die an der langen Seite des Dreieckes anliegen, erhält man einen Schnittpunkt für den 3. Dreieckspunkt. Dann Drehe ich das Dreieck (Drehpunkt = 0,0 Koordinate) und Strecke es dabei. Wobei der Punkt, der langen Seite der nicht auf der 0,0 Koordinate liegt auf der Kante des Quadrates liegen muss. Dann verbinde ich den alten Schnittpunkt der Winkel mit einer Geraden über den Schnittpunkt der Winkel des gedrehten und gestreckten Dreiecks hinaus bis über die Kante des Quadrates und erhalte den Schnittpunkt für das fertige Dreieck.
    Hoffe man versteht was ich meine. Helge
    Bilder
    • Dreieck im Quadrat.png

      4,98 kB, 331×535, 217 mal angesehen
    ja, die Aufgabe ist für alle 3-Ecke mit einem Winkel>=90° einfach lösbar: die lange Seite muss in die Diagonale.
    (Edit: nö - stimmt auch net :()

    Eine Knobelei ists bei 3-Ecken, bei denen alle 3 Winkel < 90° sind. Etwa wie positionierst du ein gleichschenkliges 3-Eck?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Okay: Wenn alle Winkel < 90°, dann eine Dreiecksseite = eine Quadratseite. Somit sind zwei Dreiecksecken gleichzeitig zwei (benachbarte) Quadratecken.
    Nehmen wir an diese Seite ist die 'untere Seite' des Quadrats, dann ist außerdem der 3. Punkt des Dreiecks um 2 *(alpha - beta) / a nach links rechts verschoben (vom der Mittelstecke m), und außerdem um (90 - gamma) / a nach unten (von der oberen Ouadratstrecke).

    Ist aber alles nur Spekulation, wobei in meinen Formeln wahrscheinlich iwo die Trigonometrie fehlt ^^


    EDIT: @VB1963:: Das ist nicht gleichseitig mit 3 x 60°. In welcher Dimension ist das möglich 8|
    Bilder
    • Dreieck.png

      4,69 kB, 520×408, 145 mal angesehen
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    Eines hab ich noch raus gefunden. Vorausgesetz es sind nicht 2 Seiten < 45°. Müssen alle Ecken eines Dreieckes jeweils eine andere Kante berühren. Wobei eine Ecke des Quadrates auch als Kante zählt.

    Achtet bitte darauf, das es nicht darum geht welches das größtmögliche Dreieck ist. sondern welches ist das größtmögliche Dreieck mit den vorgegebenen Winkeln.

    hlghyr schrieb:

    Vorausgesetz es sind nicht 2 Seiten < 45°.

    hlghyr schrieb:

    das größtmögliche Dreieck mit den vorgegebenen Winkeln.
    Ja was nun?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    hlghyr schrieb:

    Winkel
    Das meinte ich nicht.
    Meinst Du:
    das größtmögliche Dreieck mit 3 vorgegebenen Winkeln, von denen nicht 2 Winkel gleichzeitig < 45° sein dürfen?
    :?:
    Bei solch Aufgaben muss man schon sehr genau auf eine präzise Formulierung achten :!:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also noch mal!
    Die Aufgabe ist:
    In ein Quadrat mit einer bestimmten Kantenlänge ein Dreieck mit der größtmöglichen Fläche einzuzeichnen, wo nur die Winkel gegeben sind. Die Aufgabe ist nicht heraus zu finden, welches Dreieck die größtmögliche Fläche im Quadrat einnimmt.
    Dabei können es alle Arten von Dreiecke sein (Gleichschenklig, Gleichseitig, Rechtwinklig und Ungleich).
    Mein Wissensstand ist zur Zeit so, das es 2 Ausnahmen gibt die eine andere Herangehensweise erfordern als im Post 3 im Bild dargestellt. Einmal 2 Winkel <45° und einmal ein Gleichschenkliges Dreieck mit den eingeschlossenen Winkel< 45°.
    Hab mich mal intensiv damit Beschäftigt.
    Folgender Code ist dabei bis jetzt raus gekommen.

    VB.NET-Quellcode

    1. Sub Main()
    2. Dim Alpha As Double = 22.24106
    3. Dim Beta As Double = 109.03332
    4. Dim Gamma As Double = 48.72563
    5. Dim Dpl As Double = 200 'Quadratgröße
    6. Dim Deg As Double = Math.PI / 180 'Umrechnung in Grad
    7. 'Helfer
    8. Dim HBy As Double = Dpl * Math.Sin(Alpha * Deg) / Math.Sin(Beta * Deg) * Math.Sin(Gamma * Deg)
    9. Dim HBx As Double = Dpl - (HBy * Math.Tan((90 - Gamma) * Deg))
    10. 'Neue Koordinaten
    11. Dim By As Double = Dpl
    12. Dim Bx As Double = HBx - (Dpl - HBy) * Math.Tan(Alpha * Deg)
    13. Dim Cy As Double = Dpl - (Dpl - Bx) / (Math.Tan((90 - (180 - (Math.Atan(Dpl / Bx) * 180 / Math.PI) - Beta)) * Deg))
    14. Dim Cx As Double = Dpl
    15. Console.WriteLine(HBy)
    16. Console.WriteLine(HBx)
    17. Console.WriteLine()
    18. Console.WriteLine("+++++++++++++++++++++++++++++++++++++++++")
    19. Console.WriteLine("+ Ay = 0")
    20. Console.WriteLine("+ By = 0")
    21. Console.WriteLine("+ By = {0}", By)
    22. Console.WriteLine("+ Bx = {0}", Bx)
    23. Console.WriteLine("+ Cy = {0}", Cy)
    24. Console.WriteLine("+ Cx = {0}", Cx)
    25. Console.WriteLine("+++++++++++++++++++++++++++++++++++++++++")
    26. Console.WriteLine()
    27. Console.WriteLine(Math.Sin(Alpha * Deg))
    28. Console.ReadLine()
    29. End Sub

    Es findet aber noch keine Fallunterscheidung der einzelnen Dreiecksarten statt.
    Gilt nur für Dreiecke, wo maximal ein Winkel < 45° sein darf.
    Sitze auch an ein Programm um dieses graphisch dar zu stellen.
    Wäre schön, wenn man sich die Formeln anschaut. Vielleicht kann man sie noch vereinfachen.
    Gruß hlghyr