Epaisseur du trait avec la fonction Box

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Philippe_GEORGES
Messages : 140
Inscription : mer. 28/janv./2009 13:28

Epaisseur du trait avec la fonction Box

Message par Philippe_GEORGES »

Je souhaite pouvoir changer l'épaisseur de mon trait avec la fonction Box ou roundbox, avez vous une idée ?

Voici mon code :

Code : Tout sélectionner

 If CreateImage(0, 420, 420) And StartDrawing(ImageOutput(0))
        
      DrawingMode(#PB_2DDrawing_Outlined)
      FillArea(0,0,$FFFFFF) 
     
      
      RoundBox(10, 10, 400, 400, 20, 20,$00000)
      LineXY(10,110,409,110,$00000)
      LineXY(10,310,409,310,$00000)
      
        
      
      StopDrawing() 
      ImageGadget(#d1, 0, 0, 220, 220, ImageID(0))
      EndIf

Merci d'avance !
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci)
assistance informatique, création de logiciels
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Epaisseur du trait avec la fonction Box

Message par Le Soldat Inconnu »

Il suffit simplement de dessiner plusieurs fois le rectangle.

Enfin, quand je dis simplement, c'est le cas pour les Box mais pas pour les RoundBox ou j'ai du compliquer le code pour éviter les blanc dans la zone arrondi.

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 4.50
;
; Explication du programme :
; Pour faire des programmes de test rapidement, il ne reste qu'a rajouter les gadgets et la gestion des évènements.

Procedure FatBox(x, y, Width, Height, Fat, Color)
	For i = 1 To Fat
		
		Box(x + i, y + i, Width - 2 * i, Height - 2 * i, Color)
		
	Next
EndProcedure
Procedure FatRoundBox(x, y, Width, Height, RoundX, RoundY, Fat, Color)
	For i = 1 To Fat
		
		RoundBox(x + i, y + i, Width - 2 * i, Height - 2 * i, RoundX, RoundY, Color)
		RoundBox(x, y + i, Width, Height - 2 * i, RoundX, RoundY, Color)
		RoundBox(x + i, y, Width - 2 * i, Height, RoundX, RoundY, Color)
		If i > 1
			RoundBox(x + i - 1, y + i, Width - 2 * i + 2, Height - 2 * i, RoundX, RoundY, Color)
			RoundBox(x + i, y + i - 1, Width - 2 * i, Height - 2 * i + 2, RoundX, RoundY, Color)
		EndIf
		
	Next
EndProcedure

; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, 500, 300, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0
  End
EndIf

CreateImage(0, 500, 300, 32 | #PB_Image_Transparent)
StartDrawing(ImageOutput(0))
	DrawingMode(#PB_2DDrawing_AlphaBlend | #PB_2DDrawing_Outlined | #PB_2DDrawing_Transparent)
	FatBox(10, 10, 60, 90, 5, $FF5099FF)
	FatRoundBox(100, 10, 100, 120, 40, 20, 10, $FFFF99FF)
StopDrawing()
ImageGadget(0, 0, 0, 500, 300, ImageID(0))

Repeat
  Event = WaitWindowEvent()
  
  Select Event
		Case #PB_Event_Menu
      Select EventMenu() ; Menus
          
			EndSelect
      
		Case #PB_Event_Gadget
      Select EventGadget() ; Gadgets
          
			EndSelect
	EndSelect
  
Until Event = #PB_Event_CloseWindow
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Epaisseur du trait avec la fonction Box

Message par djes »

Pour les nouveaux, il est toujours bon de rappeler l'existence de codearchiv, qu'on peut trouver aussi via purearea http://www.purearea.net
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Epaisseur du trait avec la fonction Box

Message par dayvid »

Yes très utile en éffet le code archive :) :wink:
Merci LSI, ce code va me servir :P
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Répondre