Hallo Leute,
Wenn ich ein Sechseck (mit einer Ecke A nach oben zeigend)nehme und den Abstand von diesem oberen Punkt zur Geraden g durch die danebenliegenden (einer links, einer rechts) Punkte (B,C) berechne, müsste das doch theoretisch so aussehen:
l = Abstand von B zum Schnittpunkt des Lotes von A auf g.
(Da ich mit großen Pixelzahlen arbeite dachte ich mir, es macht nichts, das ganze zu runden (int). (Die beobachteten Abweichungen sind mehr als nur 1 px.)
l wäre doch Gegenkathete und mein gesuchter Abstand die Ankathete. der Winkel am Punkt A ist 60° (PI/3, 2PI entspricht ja 360°) also:
tan 60° = Gegenkathete/Ankathete multipliziert mit der Ankathete und dividiert durch tan 60° wäre doch dann meine Formel oben.
int[] xCoord = new int[] { 0, l, 2*l, 2*l, l, 0};
int[] yCoord = new int[] {diffH, 0, diffH, diffH+l, 2*diffH+l, diffH+l};
Polygon sechsEck = new Polygon(xCoord,yCoord,6);
g2.drawArc(x, y, 2*l, 2*diffH+l, 0, 360);
Der Anfangspunkt hier ist B.
Ich find es super schwer das alles ohne Zeichnung zu erklären aber ich hoffe ihr versteht trotzdem was ich meine und könnt mir helfen.
Vielen Dank im Voraus
Gruß
Nicholas