Rotationsberechnung mit Sinus und Cosinus

  • Ich habe folgendes Problem:

    Ich hab ein Rechteck indem sich ein Kreis und drei Linien befinden.
    Nun will ich das ganze rotieren, bekomm das aber nicht hin.

    Script:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    Global $hWnd
    Global $hGraphic, $bitmap, $backbuffer, $pen, $brush

    [/autoit] [autoit][/autoit] [autoit]

    Global $x = 250, _
    $y = 250, _
    $rotation = 180, _
    $pi = 4 * ATan(1)

    [/autoit] [autoit][/autoit] [autoit]

    $hWnd = GUICreate("Rotation", 500, 500, -1, -1)
    GUISetOnEvent(-3, "_Close")
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hwnd)
    $bitmap = _GDIPlus_BitmapCreateFromGraphics(500, 500, $hGraphic)
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
    $pen = _GDIPlus_PenCreate(0, 1)
    $brush = _GDIPlus_BrushCreateSolid(0xFF00FF00)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    _GDIPlus_GraphicsFillRect($backbuffer, 0, 0, 500, 500, $brush)
    _GDIPlus_PenSetColor($pen, 0xFFFF0000)
    ; Berechnung für die Koordinaten
    $x1 = $x - 5
    $y1 = $y + 10
    $x2 = $x - 5
    $y2 = $y - 10
    $x3 = $x + 5
    $y3 = $y - 10
    $x4 = $x + 5
    $y4 = $y + 10
    ; Ende der Berechnungen
    _GDIPlus_GraphicsDrawLine($backbuffer, $x1, $y1, $x2, $y2, $pen)
    _GDIPlus_GraphicsDrawLine($backbuffer, $x2, $y2, $x3, $y3, $pen)
    _GDIPlus_GraphicsDrawLine($backbuffer, $x3, $y3, $x4, $y4, $pen)
    _GDIPlus_GraphicsDrawLine($backbuffer, $x4, $y4, $x1, $y1, $pen)
    _GDIPlus_GraphicsDrawEllipse($backbuffer, $x - 3, $y -3, 6, 6, $pen)
    _GDIPlus_GraphicsDrawLine($backbuffer, $x, $y - 3, $x, $y - 13, $pen)
    _GDIPlus_PenSetColor($pen, 0xFF0000FF)
    _GDIPlus_GraphicsDrawLine($backbuffer, $x - 3, $y - 10, $x - 3, $y - 8, $pen)
    _GDIPlus_GraphicsDrawLine($backbuffer, $x + 3, $y - 10, $x + 3, $y - 8, $pen)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $bitmap, 0, 0, 500, 500)
    Sleep(10)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Close()
    _GDIPlus_BrushDispose($brush)
    _GDIPlus_PenDispose($pen)
    _GDIPlus_GraphicsDispose($backbuffer)
    _GDIPlus_BitmapDispose($bitmap)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    WinClose($hwnd)
    Exit
    EndFunc

    [/autoit]

    Danke schonmal für die Antworten. :)

    MfG
    H2112

    Zitat

    [Heute, 11:39] Raupi: Soll ich es dir machen?
    [Heute, 11:47] BugFix: "Soll ich es dir machen? " - also Raupi !! bitte nicht so öffentlich :rofl:

    Zitat

    [Heute, 11:51] BugFix: und ich werde es mir jetzt machen - das Mittagessen :P

    AMsg UDF v1.00.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%
    OwnStyle UDF Version 1.10.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

    3 Mal editiert, zuletzt von H2112 (23. November 2009 um 16:00)

  • Ich habe die Drehung um die eigene Achse in AUTOITEROIDS implementiert.

    Kannst ja mal reinschauen und dir den Teil genauer anschauen, wo das Raumschiff gedreht wird (Func Human_Spaceship($x, $y, $angle))

    Koordinaten des Raumschiffes habe ich in ein Array gespeichert.

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    2 Mal editiert, zuletzt von UEZ (23. November 2009 um 00:32)

  • Danke, dass hat mir wirklich weitergeholfen. ;)

    [closed]

    Zitat

    [Heute, 11:39] Raupi: Soll ich es dir machen?
    [Heute, 11:47] BugFix: "Soll ich es dir machen? " - also Raupi !! bitte nicht so öffentlich :rofl:

    Zitat

    [Heute, 11:51] BugFix: und ich werde es mir jetzt machen - das Mittagessen :P

    AMsg UDF v1.00.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%
    OwnStyle UDF Version 1.10.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%