Code: Select all
; Image Rotating Code
; by RASHAD
; Compiler: PB 5.11
UsePNGImageDecoder()
UsePNGImageEncoder()
UseJPEGImageDecoder()
UseJPEGImageEncoder()
UseJPEG2000ImageEncoder()
UseJPEG2000ImageDecoder()
UseTGAImageDecoder()
UseTIFFImageDecoder()
If FileSize(GetTemporaryDirectory()+"wheel.png") = -1
InitNetwork()
If Not ReceiveHTTPFile("http://img6.imageshack.us/img6/4648/513pxwheeloffortuneseas.png", GetTemporaryDirectory()+"wheel.png")
MessageRequester("Error","Downloading error....",#MB_ICONERROR)
EndIf
EndIf
LoadImage(0,GetTemporaryDirectory()+"wheel.png")
Global imgw
Global Dim p.Point(2)
Procedure Image_Rotate(Image,Angle)
Sin.f = Sin(Radian(-Angle))
Cos.f = Cos(Radian(-Angle))
height=513
width=513
imgw = Abs(height*Sin(Radian(-45)))+Abs(width*Cos(Radian(-45)))
Center = imgw / 2
p(0)\x=Center-0.5*Width*Cos-0.5*Height*Sin
p(0)\y=Center+0.5*Width*Sin-0.5*Height*Cos
p(1)\x=Center+0.5*Width*Cos-0.5*Height*Sin
p(1)\y=Center-0.5*Width*Sin-0.5*Height*Cos
p(2)\x=Center-0.5*Width*Cos+0.5*Height*Sin
p(2)\y=Center+0.5*Width*Sin+0.5*Height*Cos
temp=CreateImage(#PB_Any,imgw,imgw)
ImageDc = CreateCompatibleDC_(0)
SelectObject_(ImageDc,ImageID(Image))
dc=StartDrawing(ImageOutput(temp))
PlgBlt_(dc,@p(),ImageDc,0,0,width,height,0,0,0)
StopDrawing()
CopyImage(temp,image)
DeleteDC_(ImageDc)
FreeImage(temp)
EndProcedure
If OpenWindow(0,0,0,800,840,"Wheel of Fortune",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ImageGadget(1,40,40,780,780,0)
ButtonGadget(2,305,800,80,22,"Spin")
ButtonGadget(3,395,800,80,22,"Stop")
CopyImage(0,1)
Image_Rotate(1,0)
SetGadgetState(1,ImageID(1))
Y = 10
AddWindowTimer(0, 100, 10)
Repeat
Delay(1)
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Timer
If Y < 10
x+1+y
CopyImage(0,1)
Image_Rotate(1,x)
SetGadgetState(1,ImageID(1))
;SetGadgetAttribute(1, #PB_Button_Image, ImageID(1))
If x >= 360
x = 0
y + 1
EndIf
EndIf
Case #PB_Event_Gadget
Select EventGadget()
Case 2
x = 0
y = 0
Case 3
y = 10
EndSelect
EndSelect
Until Quit = 1
EndIf
Bugs fixed
Edit 2 : Much better
Edit 3 : Much better