// CONDITIONS DE VALIDITÉ : xA , yA, xB e t yB sont des nombres e n t i e r s
// v é r i f i a n t xA < xB et 0 <= a <= 1.
// S o r t i e s : Xpix e t Ypix . Xpix e t Ypix s on t des m at ric es à 5 l i g n e s e t n
// colonnes (n ét ant l e nombre de p i x e l s u t i l i s é s ) . Xpix c on tie nt l e s
// a b s c i ss e s des sommets des p i x e l s ( une colonne par pix el , l e s p i x e l s sont
// d é c r i t s de l a gauche ve rs l a d r o i t e ) ; de même pour Ypix e t l e s ordonnées .
function [ Xpix , Ypix ] = bresenham1 (xA, yA, xB , yB , a ) ;
Xpix = [ ] ;
Ypix = [ ] ; // Les matrices Xpix e t Ypix ser ont remplies au f u r et à mesure .
y=yA;
e=0;
for x=xA: xB
X=[x−1/2,x+1/2,x+1/2,x−1/2,x −1/2] ’; // a bsc iss es , p i x e l de cen tre ( x , y ) .
Y=[y−1/2,y−1/2,y+1/2 ,y+1/2,y −1/2] ’; // ordonnées , p i x e l de centre ( x , y ) .
Xpix=[Xpix ,X ] ; // On a joute l a colonne X aux colonnes déjà st o c k é e s .
Ypix=[Ypix ,Y ] ; // On a joute l a colonne Y aux colonnes déjà st o c k é e s .
e=e+a ;
i f e >0.5 ,
y=y+1;
e=e −1;
end ;// Les i n é g a l i t é s −0.5 < e <= 0.5 sont constamment v é r i f i é e s .
end ;
endfunction
7 - Exécuter l’algorithme de Bresenham dans chacun des trois cas suivants, à l’aide du fichier « Af-
fichage1.sce » qui est le fichier précédent auquel on a ajouté les commandes de graphe, notamment la
commande de coloriage des pixels :
cas 1 : A(-5 ;-5), B(10 ;7),
cas 2 : A(-50 ;-50), B(100 ;70),
cas 3 : A(-500 ;-500), B(1000 ;700).
On pourra procéder de la manière suivante :
3avec l’éditeur de texte de « scilab », ouvrir les fichiers « Bresenham1.sci » et « Affichage1.sce »;
3charger le fichier-fonction dans « scilab » (Exécuter ? > Charger dans scilab),
3puis exécuter « Affichage1.sce » (Exécuter ? > Exécuter le fichier dans scilab).
8 - Quels commentaires peut-on faire concernant l’affichage du segment [AB] selon le couple de points pris
en entrée ?
4