Page 1 sur 1

[ok] Vector drawing : clippath()

Publié : jeu. 31/mars/2016 8:57
par blendman
salut

J'aimerai dessiner des formes (ou shapes) à l'intérieur d'une autre forme.

J'ai pris un petit exemple très simple tiré de la documentation :
Je voudrais que le texte ne se dessine que dans les ellipses, en gardant donc la transparence du premier path (les ellipses).

Vous sauriez si c'est possible et si oui, comment ?

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 400, 200, "VectorDrawing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    CanvasGadget(0, 0, 0, 400, 200)
    LoadFont(0, "Times New Roman", 20, #PB_Font_Bold)
    
    If StartVectorDrawing(CanvasVectorOutput(0))
        
        
        ; 
       
        MovePathCursor(0, 0)
        
        For i = 10 To 150 Step 5
            AddPathEllipse(200, 100, 2*i, i)
        Next i
        VectorSourceColor(RGBA(0, 0, 255, 255))
        FillPath()
        SaveVectorState()
        
        
        For i = 10 To 150 Step 5
            AddPathEllipse(200, 100, 2*i, i)
        Next i
        ClipPath()
       
        VectorFont(FontID(0), 150)      
        VectorSourceColor(RGBA(255, 0, 0, 255))        
        MovePathCursor(50, 25)
        DrawVectorText("Text")
        
       
        
        AddPathCircle(50,50,50)
        VectorSourceColor(RGBA(0, 120, 120, 255))
        FillPath()
        
        RestoreVectorState()
        
        StopVectorDrawing()
    EndIf
    
    Repeat
        Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
EndIf

[EDIT] : bon, j'ai réussi, il faut dessiner deux fois le chemin, une première normale, puis le même chemin pour le clip, puis, le reste ^^.