Trigeometrie (sin|cos am Einheitskreis)

  • Hallo, bei mir ist es schon ein Weilchen her, also mit der Schulzeit und Mathematik.

    Ich habe folgendes Problem...

    Ein waagerechtes Rechteck, dessen Eckpunkte die Kreislinie berühren, soll im Kreis um einen Winkel verschoben werden.

    [Blockierte Grafik: http://www.michaelnicolai.net/IMAGE/trig.png]

    Nun habe ich einen Winkel mit 10° gesetzt, um den das Rechteck gedreht werden soll. Die Koordinaten beginnen mit 0|0 und enden bei 500|500, der Mittelpunkt liegt bei 250|250, welcher sowohl den Mittelpunkt des Kreises, als auch den der Rechtecke beschreibt.

    Wie errechne ich nun die Eckkoordinaten des winkelversetzen Rechteckes? (momentane Werte sind nur in Grafikprogramm abgelesen)

    Vermutlich cos und sin, aber ich finde keine Lösung, die halbwegs an die abgelesenen Werte heran kommt. Für Hilfe wäre ich super dankbar!

    ___
    auf bald, ...
    der Frosch (nap-star)

  • Sei a der Winkel, dann ist für jede beliebige Koordinate (x, y) nach einer Drehung um den Winkel a mit Drehpunkt im Koordinatenursprung:

    x' = x * cos a - y * sin a
    y' = y * cos a + x * sin a

    Beachte, dass der mathematisch positive Drehsinn gegen den Uhrzeigersinn ist!

    Fehler, Ausdruck, Erklärung nötig
    Keine Korrekturen per Privatnachricht.

  • Nun ja, aber man muss ja den Mittelpunkt einbringen oder eine Länge dorthin, da um diesen gedreht wird.

  • Das hatte ich irgendwie vergessen zu erwähnen:

    Breite des Rechtecks: 416px
    Höhe des Rechtecks: 277px
    Durchmesser des Kreises: 500px (entspricht der Diagonale des Rechtecks)

  • Mein bisheriger Ansatz zum Eckpunkt a (der analog zum diagonalen Punkt c sein sollte):

    d = 500 (Druchmesser)... Mehr anzeigen
    b = 416 (Breite)
    h = 277 (Höhe)
    w = 10 (Winkel)

    a2[x+] = (b/2) - ((d/2) * sin(180 - 90 - ((asin((b/2) * sin(90) / (d/2))) + w)) / sin(90))

    a2[y+] = sqrt((d/2)^2 - (b/2)^2) - ((d/2) * sin(180 - 90 - ((asin((b/2) * sin(90) / (d/2))) + w)) / sin(90))

  • Der Mittelpunkt ist doch das geringste Problem. Vor der Drehung verschiebt man das Koordinatensystem so, dass der Ursprung im Kreismittelpunkt liegt und nach der Drehung verschiebt man ihn wieder zurück.

    Für den Kreismittelpunkt (mx, my) ändert das die Koordinatengleichungen zu:

    Eine Koordinatenverschiebung ist:
    x' = x - mx
    y' = y - my

    Die Drehung wird also:

    x' = (x - mx) * cos a - (y - my) * sin a + mx
    y' = (y - my) * cos a + (x - mx) * sin a + my

    Fehler, Ausdruck, Erklärung nötig
    Keine Korrekturen per Privatnachricht.