- EnableExplicit
- ; ****************************************************************************
- ; ****************************************************************************
- ; ****************************************************************************
- #_OBJET3D_DEF_SINCOS = 359
- Global Dim _Sin.f(#_OBJET3D_DEF_SINCOS)
- Global Dim _Cos.f(#_OBJET3D_DEF_SINCOS)
- Define.i i
- For i=0 To #_OBJET3D_DEF_SINCOS
- _Sin(i) = Sin((i / 180) * #PI)
- _Cos(i) = Cos((i / 180) * #PI)
- Next i
- ; ****************************************************************************
- ; ****************************************************************************
- ; ****************************************************************************
- Procedure _CIRCLE_ANTIALISING(x.i, y.i, radius.d, antilenh.d, color.i)
- ;
- ;
- ;
- Define.c cR, cG, cB
- Define.d dNormal, dValue
- If radius <= 0
- radius = 0.00001
- EndIf
- If antilenh <= 0
- antilenh = 0.00001
- EndIf
- ResetGradientColors()
- DrawingMode(#PB_2DDrawing_AlphaBlend | #PB_2DDrawing_Gradient)
- cR = Red (color)
- cG = Green(color)
- cB = Blue (color)
- dNormal = 1 / radius
- dValue = 1 - antilenh * dNormal
- GradientColor( 0 , RGBA(cR, cG, cB, 255))
- GradientColor(dValue, RGBA(cR, cG, cB, 255))
- GradientColor( 1 , RGBA(cR, cG, cB, 0 ))
- CircularGradient(x, y, radius)
- Circle (x, y, radius)
-
- EndProcedure
- ; ****************************************************************************
- ; ****************************************************************************
- ; ****************************************************************************
- Define.i j, event, px, py
- ;
- Define.i hWnd = OpenWindow(0, 0, 0, 800, 600, "Intro", #PB_Window_SystemMenu)
- If hWnd <> 0
- CanvasGadget(1, 0, 0, 800, 600)
- ;
- i = 0
- px = 400
- py = 200
- ;
- Repeat
- event = WindowEvent()
- ;
- If StartDrawing(CanvasOutput(1))
- DrawingMode(#PB_2DDrawing_AlphaBlend)
- Box(0, 0, 800, 600, RGBA(0, 0, 0, 10))
- ;
- i = (i + 1) % 359
- j = (j + 2) % 359
- ;
- _CIRCLE_ANTIALISING(px + _cos(i) * 120 + _sin(j) * 160, (py + 100) + _Cos(j) * 100 - _Sin(i) * 120, 60 + _Sin(i) * _sin(j) * 60, 120, RGBA(200, 0, 0, 40 ) )
- _CIRCLE_ANTIALISING(px + _cos(i) * 180 - _cos(j) * 160, (py + 100) - _sin(j) * 120 + _Sin(i) * 120, 60 - _Sin(i) * _sin(j) * 60, 120, RGBA(0, 200, 0, 40 ) )
- _CIRCLE_ANTIALISING(px - _cos(i) * 120 + _sin(j) * 160, (py + 100) + _Cos(j) * 140 + _Sin(i) * 120, 60 + _cos(i) * _sin(j) * 60, 120, RGBA(0, 0, 200, 40 ) )
- _CIRCLE_ANTIALISING(px - _cos(i) * 120 - _sin(j) * 160, (py + 100) - _Cos(j) * 140 + _Sin(i) * 120, 60 - _cos(i) * _sin(j) * 60, 120, RGBA(200, 0, 200, 40))
- _CIRCLE_ANTIALISING(px + _cos(i) * 180 + _sin(j) * 160, (py + 100) + _Cos(j) * 120 + _Sin(i) * 120, 60 + _cos(i) * _sin(j) * 60, 120, RGBA(200, 200, 0, 40))
- _CIRCLE_ANTIALISING(px + _cos(i) * 120 - _sin(j) * 160, (py + 100) - _Cos(j) * 120 + _Sin(i) * 120, 60 - _cos(i) * _sin(j) * 60, 120, RGBA(0, 200, 200, 40))
- ;
- StopDrawing()
- EndIf
- ;
- Until event = #PB_Event_CloseWindow
- ;
- EndIf