Bonsoir,
Merci pour l'astuce, mais ça ne semble pas fonctionner correctement, je m'explique
Pour un environnement
- Code: Select all
Xmin := 0;
Xmax := 319;
Ymin := 0;
Ymax := 239;
L'affichage a l'écran ne couvre pas tout l'écran, cela laisse des bordures et tout l'espace d'environ 20 pixel réservé au menu du bas.
Il faut donc tricher pour couvrir tout l'espace mais cela étire l'espace graphique chaque pixel n'est plus représentatif de son emplacement réel.
Ainsi en tâtonnant sur les valeurs, j'arrive à avoir un affichage qui correspond à ce que je veux visuellement, mais c'est d'une part très compliqué d'arriver à placer les pixels où on veux vraiment.
De plus lorsque j'essai de parcourir avec une boucle FOR la plage Xmin -> Xmax et Ymin -> Ymax avec des pixels, il y'a des trous dans la raquette.
Ce qui visuellement donne ça :
avec ce code :
On voit que les coordonnées qui doivent être défini sont décalées (sur pout Ymin).
Si on défini Xmin = 0, Xmax= 319, Ymin = 0, Ymax = 239, alors il y'a un contour qui apparait + le menu du bas
- Code: Select all
EXPORT Demo_RECT()
BEGIN
LOCAL i, j, k;
Xmin:=1;
Xmax:=318;
Ymin:=21;
Ymax:=239;
DIMGROB(G1,319,239);
RECT(G1,#FFFFFF);
RECT(G1,0,1,10,11,RGB(0,255,0),RGB(255,0,0));
RECT(G1,0,239,9,230,RGB(255,0,0),RGB(0,255,0));
RECT(G1,308,229,318,239,RGB(255,0,0),RGB(0,0,255));
RECT(G1,308,1,318,11,RGB(255,0,0),RGB(128,0,128));
LINE(G1, 0, 1, 319, 239, RGB(55,55,55));
FOR k FROM 10 TO Ymax/2 STEP 20 DO
ARC(G1, Xmax/2, Ymax/2, k, {#CCCCCC});
END;
FOR i FROM 0 TO 318 STEP 1 DO
PIXON(G1, i, FLOOR(Ymax/1.5), #FF0000);
PIXON(G1, i, Ymax/2, #FF0000);
PIXON(G1, i, Ymax/3, #FF0000);
END;
FOR j FROM 0 TO 319 STEP 1 DO
PIXON(G1, FLOOR(Xmax/1.5), j, #000FF);
PIXON(G1, Xmax/2, j, #000FF);
PIXON(G1, Xmax/3, j, #000FF);
END;
BLIT(G0, G1);
WAIT();
END;
A moins que je me sois trompé, j'ai l'impression que les fonction sans le _P ne sont pas fiable pour travaillé au pixel près.