Page 1 sur 1

[2D drawing] des cercles (pour brush 2D ou autres)

Publié : mar. 10/juil./2012 17:57
par blendman
salut

voici un petit code très simple, qui permet de tester les dégradé et la création de cercles particuliers.
J'ai utilisé ça sur mon logiciel Animatoon, pour le Module de Brush :

Code : Tout sélectionner

Enumeration ; gadget
  #Gadget_image
  #Gadget_GradientX
  #Gadget_GradientX2
  #Gadget_GradientX3
  #Gadget_Radius  
EndEnumeration

Global gradientX.d=0.1, gradientX2.d=0.1, radius.w = 800,gradientX3.d = 0.5

Macro Update()
  If StartDrawing(ImageOutput(0))
    Box(0, 0, 400, 200, $FFFFFF)    
    DrawingMode(#PB_2DDrawing_Gradient|#PB_2DDrawing_AlphaBlend)      
    ;BackColor(RGBA(0,0,0,255))      
    GradientColor(gradientX, 0)    
    GradientColor(gradientX3, RGBA(0,0,0,125))     
    GradientColor(gradientX2, RGBA(0,0,0,0))    
    ;FrontColor(RGBA(0,0,0,0))
    CircularGradient(100, 100, radius)     
    Box(0,0,200,200)    
    StopDrawing() 
  EndIf
  Debug gradientX2
EndMacro

If OpenWindow(0, 0, 0, 400, 200, "Brush Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  If CreateImage(0, 200, 200)
    Update()
    ImageGadget(#Gadget_image, 0, 0, 400, 200, ImageID(0))
  EndIf
  x = 30
  TrackBarGadget(#Gadget_GradientX,220,x,150,20,1,100)
  SetGadgetState(#Gadget_GradientX,gradientX *100)
  
  TrackBarGadget(#Gadget_GradientX2,220,x*2,150,20,1,100)
  SetGadgetState(#Gadget_GradientX2,gradientX2 *100) 
  
  TrackBarGadget(#Gadget_GradientX3,220,x*3,150,20,1,100)
  SetGadgetState(#Gadget_GradientX3,gradientX3 *100)
  
  TrackBarGadget(#Gadget_Radius,220,x*4,150,20,1,1000)
  SetGadgetState(#Gadget_Radius,radius)
  
  Repeat
    Event = WaitWindowEvent()
        
    Select event
        
      Case #PB_Event_Gadget
        
        Select EventGadget()
            
          Case #Gadget_GradientX
            gradientX= GetGadgetState(#Gadget_GradientX)/100
            update()
            SetGadgetState(#Gadget_image,ImageID(0))
            
          Case #Gadget_GradientX2
            gradientX2 = GetGadgetState(#Gadget_GradientX2)/100
            update()
            SetGadgetState(#Gadget_image,ImageID(0))
            
          Case #Gadget_GradientX3
            gradientX3 = GetGadgetState(#Gadget_GradientX3)/100
            update()
            SetGadgetState(#Gadget_image,ImageID(0)) 
            
          Case #Gadget_Radius
            radius = GetGadgetState(#Gadget_Radius)
            update()
            SetGadgetState(#Gadget_image,ImageID(0))
            
        EndSelect
        
    EndSelect
        
  Until Event = #PB_Event_CloseWindow
EndIf
Si vous faites des découvertes avec ça, n'hésitez pas à poster :)

Re: [2D drawing] des cercles (pour brush 2D ou autres)

Publié : mar. 10/juil./2012 18:06
par kernadec
bonjour blendman

merci, magnifiques effets

Cordialement

Re: [2D drawing] des cercles (pour brush 2D ou autres)

Publié : mar. 10/juil./2012 20:28
par falsam
Merci Blendman :)