Sign in to follow this  
Followers 0
dantay9

draw trapezoid

3 posts in this topic

#1 ·  Posted (edited)

I am not well versed in GDI+ so I decided to try it out a bit. I am doing ok so far. I used a doublebuffer template by monoceres and switched it up a bit. I am trying to draw a trapezoid and I know you have to use _GDIPlus_GraphicsDrawPolygon. I think all of the points are correct because the vertecies of the trapezoid are correct. My problem is that the two bases aren't flat. They dip into the center of the trapezoid. I am probably missing something really easy. Thanks in advance!

Trapezoid.au3

Edited by dantay9

[font="Verdana"] [size="2"]"[/size][/font]Failure is not an option -- it comes packaged with Windows"[font="Verdana"][size="2"] Gecko Web Browser[/size][/font][font="Verdana"][size="2"], [/size][/font][font="Verdana"][size="2"]Yahtzee![/size][/font][font="Verdana"][size="2"], Toolbar Launcher (like RocketDock)[/size][/font][font="Verdana"][size="2"]Internet Blocker, Simple Calculator, Local Weather, Easy GDI+ GUI [/size][/font][font="Verdana"][size="2"]Triangle Solver, TCP File Transfer, [/size][/font][font="Verdana"][size="2"]Valuater's Autoit Wrappers[/size][/font][font="Verdana"][size="3"][size="2"][size="2"]OOP In AutoIt[/size][/size][/size][/font][font="Verdana"][size="2"][size="1"]Using Windows XP SP3, 1GB RAM, AMD Athlon Processor @ 2.1 GHzCheck me out at gadgets.freehostrocket.com[/size][/size][/font]

Share this post


Link to post
Share on other sites



I am not well versed in GDI+ so I decided to try it out a bit. I am doing ok so far. I used a doublebuffer template by monoceres and switched it up a bit. I am trying to draw a trapezoid and I know you have to use _GDIPlus_GraphicsDrawPolygon. I think all of the points are correct because the vertecies of the trapezoid are correct. My problem is that the two bases aren't flat. They dip into the center of the trapezoid. I am probably missing something really easy. Thanks in advance!

A trapezoid.

;
    Local $Points[5][2] = [[4,0],[25,69],[33,27],[123,27],[131,69]]
;

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

Wow. I'll have to see what I was doing wrong. I knew it was easy

Edit: My points were fine, I just put them in the wrong order

#include <GDIplus.au3>

Global Const $width = 382
Global Const $height = 452
Global $graphics, $bitmap, $backbuffer, $hPenBlack, $hPenRed

$GUI = GUICreate("GDI+", $width, $height)
GUISetState()
Draw($GUI)


While WinExists($GUI)
    While WinActive($GUI)
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case - 3
                close()
            Case Else
                ReDraw($graphics, $backbuffer, 176, 381, 136)
        EndSwitch
        Sleep(10)
    WEnd
    Sleep(200)
WEnd

Func Draw($hWnd)
    _GDIPlus_Startup()
    $graphics = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $bitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $graphics)
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
    ReDraw($graphics, $backbuffer, 176, 381, 136)
EndFunc   ;==>Draw

Func ReDraw($hBuffer, $hGraphics, $Left, $Bottom, $Length)
    Local $Points[5][2]

    _GDIPlus_GraphicsClear($backbuffer, 0x00F7F7F7)

    $Points[0][0] = 4
    $Points[0][1] = 0

    $Points[1][0] = $Left
    $Points[1][1] = $Bottom
    $Points[2][0] = $Left + 5
    $Points[2][1] = $Bottom - 5
    $Points[3][0] = $Points[1][0] + $Length - 5
    $Points[3][1] = $Bottom - 5
    $Points[4][0] = $Points[1][0] + $Length
    $Points[4][1] = $Bottom

    $Poly = _GDIPlus_GraphicsDrawPolygon($hGraphics, $Points)

    _GDIPlus_GraphicsDrawImageRect($graphics, $bitmap, 0, 0, $width, $height)

EndFunc   ;==>ReDraw

Func close()
    _GDIPlus_GraphicsDispose($backbuffer)
    _GDIPlus_BitmapDispose($bitmap)
    _GDIPlus_GraphicsDispose($graphics)
    _GDIPlus_Shutdown()
    Exit
EndFunc   ;==>close
Edited by dantay9

[font="Verdana"] [size="2"]"[/size][/font]Failure is not an option -- it comes packaged with Windows"[font="Verdana"][size="2"] Gecko Web Browser[/size][/font][font="Verdana"][size="2"], [/size][/font][font="Verdana"][size="2"]Yahtzee![/size][/font][font="Verdana"][size="2"], Toolbar Launcher (like RocketDock)[/size][/font][font="Verdana"][size="2"]Internet Blocker, Simple Calculator, Local Weather, Easy GDI+ GUI [/size][/font][font="Verdana"][size="2"]Triangle Solver, TCP File Transfer, [/size][/font][font="Verdana"][size="2"]Valuater's Autoit Wrappers[/size][/font][font="Verdana"][size="3"][size="2"][size="2"]OOP In AutoIt[/size][/size][/size][/font][font="Verdana"][size="2"][size="1"]Using Windows XP SP3, 1GB RAM, AMD Athlon Processor @ 2.1 GHzCheck me out at gadgets.freehostrocket.com[/size][/size][/font]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0