Bonjour,ScottMeyer wrote: on peut certainement augmenter la résolution
Tu peux activer l'antialiasing s.Smooth := "Best" pour améliorer le rendu.
J'ai aussi ajouter dans mon example comment dessiner un polygone et changer la couleur du fond.
Bonjour,ScottMeyer wrote: on peut certainement augmenter la résolution
Code: Select all
s.Text(new Canvas.Brush(0xaaFFFFFF),f,"test `nde dessin",190,200) ;Text(Brush,Font,Value,X,Y,W = "",H = "")
Code: Select all
Space:
Il est possible de contenir l'entièreté du "canvas" dans un " gui control " il faut pour cela spécifier un " hwnd name " pour le contrôle et utiliser la fonction Viewport() avec le "nom hwnd" du contrôle.ScottMeyer wrote: J'ai pas trouvé comment on peut créer le " Canvas Surface " à partir de la position X, Y du Gui . On n'a actuellement que la hauteur et largeur. Une idée ?
Oui, il est aussi possible de faire tourner le canvas cela marche pour les dessins mais j'ai pas encore trouvé le moyen de faire tourner le texte.joedf wrote:Il ya une fonction Canvas.Surface.Rotate(Angle)
Code: Select all
;https://github.com/Uberi/Canvas-AHK
#include canvas.ahk
gui, -dpiscale
gui, font, s18 bold
gui, add, text, x10 y10, Mon Titre
gui, font, s12 normal
gui, add, button, x50 y50 grotate, Rotate
gui, add, text, , Le canvas est maintenant contenu dans un " text control " de 400 x 400 `nCliquez sur le canvas pour faire tourner son contenu
gui, add, text, w400 h400 x100 y150 grotate hwndMon_cadre border, ;create a container control for ex. a text control and specify the hwnd name for ex. hwndMy_container_box
s := new Canvas.Surface(400,400) ;create a new drawing area
s.Clear(0xFFA0A0A0) ;change la couleur du fond en gris
s.Smooth := "Best" ;antialiasing (améliore la qualité de l'image) .Smooth := "None" "Good" or "Best"
Gui, +LastFound
v := new Canvas.Viewport(Mon_cadre).Attach(s) ; use viewport function with hwnd name of a control to enclose the canvas in it for ex. v := new Canvas.Viewport(My_container_box).Attach(s)
crayon_rouge := new Canvas.Pen(0xFFFF0000,1)
crayon_vert := new Canvas.Pen(0xFF00FF00,1)
crayon_jaune := new Canvas.Pen(0x80FFFF00,5)
b := new Canvas.Brush(0xAAFF00FF)
f := new Canvas.Font("arial",18)
s.Text(new Canvas.Brush(0xaaFFFFFF),f,"test `nde dessin",300,200) ;Text(Brush,Font,Value,X,Y,W = "",H = "")
gui, +resize
Gui, Show, x10 y10 w800 h600, Canvas Demo
gosub, space
Return
GuiClose:
ExitApp
space:
s.DrawRectangle(crayon_jaune,30,80,300,50) ;DrawRectangle(pen,posx,posy,Width,Height)
s.FillRectangle(b,50,50,50,50) ;FillRectangle(brush,posx,posy,Width,Height)
s.DrawEllipse(crayon_jaune,150,150,50,100) ;DrawEllipse(pen,posx,posy,Width,Height)
s.Line(crayon_vert,15,20,300,300) ;draw a line .Line(Pen,x1,y1,x2,y2)
PointArray:=[[30,200],[30,300],[100,300]] ;set an array of points for the polygon [[X1,Y1],[X2,Y2],[X3,Y3]]
s.DrawPolygon(crayon_rouge,PointArray) ;draw a polygon (triangle)
v.Refresh()
Return
rotate:
s.Clear(0xFFA0A0A0)
s.Translate(40,-30) ;decaler le contenu du canvas de 40 px vers la droite et 30 px vers le haut
s.rotate(10) ;effectuer une rotation de 10° ver la droite
s.DrawRectangle(crayon_jaune,30,80,300,50) ;DrawRectangle(pen,posx,posy,Width,Height)
s.FillRectangle(b,50,50,50,50) ;FillRectangle(brush,posx,posy,Width,Height)
s.DrawEllipse(crayon_jaune,150,150,50,100) ;DrawEllipse(pen,posx,posy,Width,Height)
s.Line(crayon_vert,15,20,300,300) ;draw a line .Line(Pen,x1,y1,x2,y2)
PointArray:=[[30,200],[30,300],[100,300]] ;set an array of points for the polygon [[X1,Y1],[X2,Y2],[X3,Y3]]
s.DrawPolygon(crayon_rouge,PointArray) ;draw a polygon (triangle)
v.Refresh()
return
Return to “J'ai besoin d'aide”
Users browsing this forum: No registered users and 4 guests