Canva avec forme personnalisable
Canva avec forme personnalisable
Salut,
Se serais vraiment bien on pouvais donner une forme voulue en canvas.
Par exemple Ronde, Triangle ou même polygonale !
Se serais vraiment bien on pouvais donner une forme voulue en canvas.
Par exemple Ronde, Triangle ou même polygonale !
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Re: Canva avec forme personnalisable
En natif ça ne sera pas possible. Tout comme un bouton rond.
L’intérêt du canvas est de pouvoir mettre du graphisme dessus, donc tu peux très bien créer un canvas carré qui aura un fond couleur fenêtre et une forme géométrique à l’intérieur. ça donnera l'illusion d'un bouton non carré.
L’intérêt du canvas est de pouvoir mettre du graphisme dessus, donc tu peux très bien créer un canvas carré qui aura un fond couleur fenêtre et une forme géométrique à l’intérieur. ça donnera l'illusion d'un bouton non carré.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Canva avec forme personnalisable
Oui mais c'est pas très propre, a cause des coins :/
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Re: Canva avec forme personnalisable
Il ni a rien de "pas très propre, a cause des coins"
Ou commence le gadget ? Ou finit le gadget ?
Ou commence le gadget ? Ou finit le gadget ?
Code : Tout sélectionner
Enumeration
#Win
#C
EndEnumeration
Procedure exit()
End
EndProcedure
Procedure DR()
StartDrawing(CanvasOutput(#C))
Box(0,0,300,200,$FFFFFF)
Circle(80,70,60,#Red)
StopDrawing()
EndProcedure
OpenWindow(#win,#PB_Ignore,#PB_Ignore,300,160,"",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
SetWindowColor(#Win,$FFFFFF)
CanvasGadget(#C,1,1,200,150)
DR()
BindEvent(#PB_Event_CloseWindow, @Exit() )
Repeat
WaitWindowEvent()
ForEver
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Canva avec forme personnalisable
Bonjour,
J'imagine mal un "canvas" autre que rectangulaire, juste sur le fait des calculs a faire pour obtenir les bords. Après je penses que la mémoire est lineaire et qu'un rectangle est la seul chose possible (à part une ligne). A mon avis ce que tu demande ressemble plus à une transparence avec le fond (fenêtre et touts objets en dessous).
Cordialement,
GallyHC
J'imagine mal un "canvas" autre que rectangulaire, juste sur le fait des calculs a faire pour obtenir les bords. Après je penses que la mémoire est lineaire et qu'un rectangle est la seul chose possible (à part une ligne). A mon avis ce que tu demande ressemble plus à une transparence avec le fond (fenêtre et touts objets en dessous).
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: Canva avec forme personnalisable
Bien dit Gally
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Re: Canva avec forme personnalisable
Si tu clique sur la partie transparente, dans les coins, alors tu est encore sur le Bouton !
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Re: Canva avec forme personnalisable
Quel est l'imbécile qui clique sur les coins d'un cercle ?
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Canva avec forme personnalisable
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
- JohnJohnsonSHERMAN
- Messages : 648
- Inscription : dim. 13/déc./2015 11:05
- Localisation : Allez, cherche...
- Contact :
Re: Canva avec forme personnalisable
@Shadow :
Tu pourrais toujours te protéger de cela en faisant des calculs extrêmement compliqués à base de sinus et de cosinus, pour déterminer si tu est ou non dans le fameux cercle au moment du clic
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
- Windows 10 x64 - PB 5.61 x64
- Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Canva avec forme personnalisable
La solution est de passer par la lib vector. Un exemple avec ce code. Passe le souris sur le cercle le rectangle et le polygone.
Code : Tout sélectionner
Enumeration window
#mainform
EndEnumeration
Enumeration gadget
#title
#result
#shape
EndEnumeration
Enumeration font
#fontvector
#fontapp
EndEnumeration
Declare DrawTitle()
Declare DrawShape()
;Initialisation des fonts
LoadFont(#fontvector, "Impact", 10)
LoadFont(#fontapp, "Verdana", 11)
SetGadgetFont(#PB_Default, FontID(#fontapp))
If OpenWindow(#mainform, 0, 0, 600, 400, "VectorDrawing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SetWindowColor(#mainform, RGB(255, 255, 255))
Gadget = TextGadget(#PB_Any, 20, 100, 200, 20, "Forme selectionnée")
SetGadgetColor(Gadget, #PB_Gadget_BackColor, RGB(255, 255, 255))
StringGadget(#result, 220, 100, 200, 22, "")
CanvasGadget(#title, 20, 10, 400, 80)
DrawTitle()
CanvasGadget(#shape, 0, 150, 600, 120)
DrawShape()
BindGadgetEvent(#shape, @DrawShape(), #PB_EventType_MouseMove)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Procedure DrawTitle()
If StartVectorDrawing(CanvasVectorOutput(#Title))
VectorFont(FontID(#fontvector), 60)
AddPathText("Mon application")
;Remplissage du texte & contour
VectorSourceColor(RGBA(255, 215, 0, 255))
FillPath(#PB_Path_Preserve)
VectorSourceColor(RGBA(0, 0, 0, 255))
StrokePath(1)
StopVectorDrawing()
EndIf
EndProcedure
Procedure DrawShape()
x = GetGadgetAttribute(#Shape, #PB_Canvas_MouseX)
y = GetGadgetAttribute(#Shape, #PB_Canvas_MouseY)
SetGadgetText(#Result, "")
If StartVectorDrawing(CanvasVectorOutput(#Shape))
;Cercle
AddPathCircle(50, 50, 30) ;Ajout cercle
If IsInsidePath(x, y, #PB_Coordinate_Device)
;Curseur dans le cercle
SetGadgetText(#result, "Cercle vert")
VectorSourceColor(RGBA(0, 255, 0, 255))
Else
;Curseur en dehors du cercle
VectorSourceColor(RGBA(0, 0, 255, 255))
EndIf
FillPath() ;Remplissage avec la couleur couante
;Box
VectorSourceColor(RGBA(255, 0, 0, 255))
AddPathBox(200, 30, 100, 50)
If IsInsidePath(x, y, #PB_Coordinate_Device)
SetGadgetText(#result, "Rectangle rouge")
VectorSourceColor(RGBA(255, 0, 0, 255))
Else
VectorSourceColor(RGBA(0, 0, 255, 255))
EndIf
FillPath()
;Polygone
VectorSourceColor(RGBA(0, 0, 255, 255))
MovePathCursor(450, 20)
AddPathLine(50, 10, #PB_Path_Relative)
AddPathLine(10, 20, #PB_Path_Relative)
AddPathLine(0, 30, #PB_Path_Relative)
AddPathLine(-50, 30, #PB_Path_Relative)
AddPathLine(-50, -30, #PB_Path_Relative)
AddPathLine(-10, -20, #PB_Path_Relative)
AddPathLine(50, -40, #PB_Path_Relative)
If IsInsidePath(x, y, #PB_Coordinate_Device)
SetGadgetText(#result, "Polygone jaune")
VectorSourceColor(RGBA(255, 215, 0, 255))
Else
VectorSourceColor(RGBA(0, 0, 255, 255))
EndIf
FillPath()
StopVectorDrawing()
EndIf
EndProcedure
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Canva avec forme personnalisable
Magnifique Falsam
Merci.
Merci.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Re: Canva avec forme personnalisable
il serai plus simple alors de calculer la distance du pointeur par rapport au centre du cercle non ??JohnJohnsonSHERMAN a écrit :
@Shadow :
Tu pourrais toujours te protéger de cela en faisant des calculs extrêmement compliqués à base de sinus et de cosinus, pour déterminer si tu est ou non dans le fameux cercle au moment du clic
parceque c'est un cercle, et que du coup ,forcement si on mesure la distance par rapport au centre on se trouve obligatoirement au dehors ou en dedans
pas de sinus ou de trucmuch compliqué
la methode architecte de cleopatre (Asterix)
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
- JohnJohnsonSHERMAN
- Messages : 648
- Inscription : dim. 13/déc./2015 11:05
- Localisation : Allez, cherche...
- Contact :
Re: Canva avec forme personnalisable
@Dobro : En fait t'as raison... Jai zappé un truc super utile qu'on utilise souvent... le théoréme de Pythagore
Pour exprimer la distance entre le pointeur et le centre du cercle, il faut convertir des coordonnées cartésiennes (x,y) en coordonnées polaires (angle,rayon) pour avoir la distance centre-pointeur... Et pour ca il faut et il suffit de quelques calculs simples : théoréme de Pythagore
Prenons le triangle rectangle formé par le centre du cercle A, un point B situé sur l'axe des abscisses et un point C situé à l'emplacement du pointeur. On a donc un triangle rectangle.
Il est simplissime de calculer la longueur AC de l'hypoténuse (et aussi distance entre le pointeur et le centre du cercle) :
AC² = AB² + BC²
<=>AC = sqrt(AB² + BC²)
Si l'on extrapole cela à notre probléme ca donne :
Simple non? Et pourtant je l'avais oublié...
Pour exprimer la distance entre le pointeur et le centre du cercle, il faut convertir des coordonnées cartésiennes (x,y) en coordonnées polaires (angle,rayon) pour avoir la distance centre-pointeur... Et pour ca il faut et il suffit de quelques calculs simples : théoréme de Pythagore
Prenons le triangle rectangle formé par le centre du cercle A, un point B situé sur l'axe des abscisses et un point C situé à l'emplacement du pointeur. On a donc un triangle rectangle.
Il est simplissime de calculer la longueur AC de l'hypoténuse (et aussi distance entre le pointeur et le centre du cercle) :
AC² = AB² + BC²
<=>AC = sqrt(AB² + BC²)
Si l'on extrapole cela à notre probléme ca donne :
Code : Tout sélectionner
rayon = Sqrt(Pow(centreX-pointeurX, 2) + Pow(centreY+pointeurY, 2))
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
- Windows 10 x64 - PB 5.61 x64
- Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Re: Canva avec forme personnalisable
Ou travailler en détectant la couleur du cercle... 0 calcul..
Bref faut se creuser un peu la tête.. Les solutions sont là.
Bref faut se creuser un peu la tête.. Les solutions sont là.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels