Page 1 sur 1

[5.40] Vecteurs Combiné FillPath() et DashPath()

Publié : mar. 01/sept./2015 13:42
par falsam
J'ai voulu faire un texte que je rempli d'une couleur tout en dessinant le contour en pointillé d'une autre couleur. Je pensais que c'était faisable comme en JavasScript associé au canvas mais non.

J'ai du redessiner le texte pour afficher le contour.

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 800, 600, "VectorDrawing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    CanvasGadget(0, 0, 0, 800, 600)
    
    LoadFont(0, "Impact", 10) 
    
    If StartVectorDrawing(CanvasVectorOutput(0))
            
      ;Arc de cercle             
      MovePathCursor(400, 300) ;Positionne le curseur de traçage au milieu du canvas
      AddPathCircle(400, 300, 200, 0, 235, #PB_Path_Connected) ;Dessin de l'arc
      ClosePath() ;Et on le ferme. Commenter pour voir la différence.
      
      VectorSourceColor(RGBA(255, 0, 0, 255)) ;Couleur de remplissage
      
      FillPath() ;Remplissage de l'arc de cercle
      
      ;Texte
      MovePathCursor(400, 100)
      VectorFont(FontID(0), 150) 
      AddPathText("Demo")
      VectorSourceColor(RGBA(255, 215, 0, 255))
      FillPath()
      
      ;Je n'  ai pas l'impression qu'on puisse combiner FillPath() & DaskPath(). Idem avec StrokePathe()
      ;Je redessine le texte et j'applique le contour Dash
      MovePathCursor(400, 100)
      VectorFont(FontID(0), 150)
      AddPathText("Demo")
      VectorSourceColor(RGBA(0, 0, 0, 255))
      DashPath(3, 6) ;Largeur et longueur du point.
      StopVectorDrawing()
    EndIf
    
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
  EndIf

Re: [5.40] Combiné FillPath() et DashPath()

Publié : mar. 01/sept./2015 18:12
par Mesa
Dans l'aide on peut lire que les chemins sont remis à zéro une fois utilisés:
Après avoir rempli le contour ou l'intérieur d'une figure, le chemin est remis à zéro et un nouveau chemin peut être construit pour l'opération de dessin suivante.
M.

Re: [5.40] Combiné FillPath() et DashPath()

Publié : mar. 01/sept./2015 18:15
par falsam
Avoir une option pour le préserver serait pas mal afin d'appliquer plusieurs opérations :wink:

Re: [5.40] Combiné FillPath() et DashPath()

Publié : mar. 01/sept./2015 18:26
par Mesa
Oui, je suis d'accord, il manque un SavePath ou un PushPath, peut-être aussi un DrawVectorAlphaImage.

Si tu veux, tu peux en parler avec fr34k, le créateur de cette bibliothèque, sur le forum anglais.

M.

Re: [5.40] Combiné FillPath() et DashPath()

Publié : mar. 01/sept./2015 18:28
par falsam
Mesa a écrit :Si tu veux, tu peux en parler avec fr34k, le créateur de cette bibliothèque, sur le forum anglais.
Je veux bien que tu fasses la démarche d'autant plus que tu es intégré dans l'équipe Fantaisie Software et que je pense que ton anglais est meilleur que le mien.

Re: [5.40] Combiné FillPath() et DashPath()

Publié : mer. 02/sept./2015 9:28
par Demivec
falsam a écrit :Avoir une option pour le préserver serait pas mal afin d'appliquer plusieurs opérations :wink:
FillPath() a écrit :#PB_Path_Preserve : Ne pas réinitialiser le chemin après cette fonction

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 800, 600, "VectorDrawing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    CanvasGadget(0, 0, 0, 800, 600)
    
    LoadFont(0, "Impact", 10) 
    
    If StartVectorDrawing(CanvasVectorOutput(0))
            
      ;Arc de cercle             
      MovePathCursor(400, 300) ;Positionne le curseur de traçage au milieu du canvas
      AddPathCircle(400, 300, 200, 0, 235, #PB_Path_Connected) ;Dessin de l'arc
      ClosePath() ;Et on le ferme. Commenter pour voir la différence.
      
      VectorSourceColor(RGBA(255, 0, 0, 255)) ;Couleur de remplissage
      
      FillPath() ;Remplissage de l'arc de cercle
      
      ;Texte
      MovePathCursor(400, 100)
      VectorFont(FontID(0), 150) 
      AddPathText("Demo")
      VectorSourceColor(RGBA(255, 215, 0, 255))
      FillPath(#PB_Path_Preserve) ; <===---
      
      ;Je n'  ai pas l'impression qu'on puisse combiner FillPath() & DaskPath(). Idem avec StrokePathe()
      ;Je redessine le texte et j'applique le contour Dash
;       MovePathCursor(400, 100)
;       VectorFont(FontID(0), 150)
;       AddPathText("Demo")
      VectorSourceColor(RGBA(0, 0, 0, 255))
      DashPath(3, 6) ;Largeur et longueur du point.
      StopVectorDrawing()
    EndIf
    
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
  EndIf

Re: [5.40] Combiné FillPath() et DashPath()

Publié : mer. 02/sept./2015 9:38
par Mesa
:lol: :lol: :lol:

Bien joué Demivec :!:

Je m'disais aussi, c'est bizarre, fr34k avait pourtant fait le nécessaire :roll:

M.

Re: [5.40] Combiné FillPath() et DashPath()

Publié : mer. 02/sept./2015 9:47
par blendman
Pouvoir choisir aussi l'interpolation (pour le scale, rotation, etc...) serait aussi vraiment pas mal. Car là, c'est une interpolation pré-définie, mais pour un zoom c'est pas terrible car ça rame un peu, et l'image est floutée au lieu d'être pixelisée si besoin.

Re: [5.40] Combiné FillPath() et DashPath()

Publié : mer. 02/sept./2015 12:44
par falsam
Merci beaucoup Demivec pour cette réponse rapide. J’apprécie.