droites et des courbes de Bézier (ces dernières nécessitant de préciser des points de
contrôle).
Figure 23.5 : Les déplacements rapides de la souris donnent un rendu en pointillés
Un autre problème de l'implémentation actuelle est la fragilité par rapport au
redimensionnement de la zone de dessin : tout d'abord, elle sera distordue ; ensuite, à la
prochaine opération de dessin, tous les points précédents seront effacés.
Pour améliorer la situation, on peut mémoriser la liste des points : par exemple, dans
une propriété points contenant un tableau de triplets : la position et la couleur de
chaque point. Ensuite, chaque opération de dessin affichera l'entièreté des points
mémorisés, reliés par des lignes, en faisant varier la couleur au besoin (strokeStyle).
property var points: []
onPaint: {
if (mouseArea.pressed) {
var colour;
if ((mouseArea.pressedButtons & Qt.LeftButton)
&& ! (mouseArea.pressedButtons & Qt.RightButton)) {
colour = "red";
} else if (! (mouseArea.pressedButtons & Qt.LeftButton)
&& (mouseArea.pressedButtons & Qt.RightButton)) {
colour = "green";
} else {
colour = "blue";
441
Précédent

- 442/494

Suivant