Bonjour,
Je tente désormais de travailler sur les transformations d'un PathData. Il existe plusieurs transformations possibles cf. https://developer.mozilla.org/fr/doc...bute/transform
Si j'en ai plus ou moins réussi certaines (scale, translate,rotate ici) je butte, entre autres, sur matrix
mon code
En fait, j'ai essayé beaucoup de combinaisons pour remplir la matrice, c'est loin d'être une évidence parce que peu naturelle, c'est le code qui applique le meilleur angle, mais, ni le déplacement ni l'épaisseur ne sont au rendez-vous !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 if Pos('matrix(',transform)>0 then begin // SVG Theory https://developer.mozilla.org/fr/docs/Web/API/SVGMatrix // Beaucoup d'opération graphiques de SVG utilisent des matrices 2x3 de la forme : // [a c e] // [b d f] // laquelle, quand étendue en une matrice 3x3 à des fins d'arithmétique matricielle, devient // [a c e] // [b d f] // [0 0 1] PS:=Pos('matrix(',transform)+Length('matrix('); GetNumbers(Copy(transform,PS,Pos(')',transform,PS)-PS), Numbers); var ma : single :=Numbers.Dequeue; var mc : Single :=Numbers.Dequeue; var me : Single :=Numbers.Dequeue; var mb : Single :=Numbers.Dequeue; var md : Single :=Numbers.Dequeue; var mf : Single :=Numbers.Dequeue; M.m11:=ma; M.m12:=mb; M.m21:=mc; M.m22:=md; M.m31:=me; M.m32:=mf; Cible.Data.ApplyMatrix(M); end;
Je me goure peut-être complètement avec le remplissage de M.mxx (cela me semble trop beau qu'un TMatrix soit prévu pour l'effet Matrix).
Des idées ?
Partager