Bonjour,
dans le cadre d'un projet je dois reproduire les dessins suivants dans la fenêtre graphique de Caml Light :
A partir du code suivant pour générer les images :
L'image vstrip étant celle de gauche et checker celle de droite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 type Point == float * float;; type 'a Image == Point -> 'a;; type Region == bool Image;; let (vstrip : Region) = function (x,y) -> abs_float x <= 0.5;; let (checker : Region) = function (x,y) -> mod_float (floor x +. floor y) 2. = 0.;;
Mon code d'affichage est le suivant :
Mon problème est que Caml considère l'origine dans l'angle inférieur gauche de l'écran tandis que les fonctions vstrip et checker nécessitent qu'il soit au centre de l'écran.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 let afficheRegion region width = let x=size_x() and y=size_y() in for j=y downto 0 do for i=0 to x do if region ((float_of_int i) *. width /. (float_of_int x), (float_of_int j) *. width /. (float_of_int y)) == true then set_color (rgb 0 0 0) else set_color (rgb 255 255 255); plot i j; done; done;;
Ma question est donc de savoir comment adapter ma fonction d'affichage à cette contrainte ? Car au lieu d'avoir une barre verticale centrée pour mon vstrip, elle se trouve totalement à gauche de l'écran.
Merci d'avance.
Partager