Listing 2 – source scilab
// Charger dans s c i l a b "21 _Bresenham1 . s c i "
// S a i s i e des données
xA=input( ’xA=’ ) ;
yA=input( ’yA=’ ) ;
xB=input( ’xB=’ ) ;
yB=input( ’yB=’ ) ;
Graphe=1;// quand Graphe =0, aucun graph e n ’ e s t t r a c é .
a=(yB−yA)/(xB−xA ) ;
disp ( ’La␣ pente ␣du␣segment␣ [AB] ␣ est ␣ ’ +string ( a ) ) ;
// D i s t i n c t i o n des d i f f é r e n t s cas
i f xA<xB then ,
i f (0 <= a)&(a <=1) then ,// cas 1 : 0 <= a <= 1.
disp ( ’ Cas␣1␣ : ␣ l ’ ’ al go ri th me ␣Bresenham1␣ s ’ ’ ap plique ’ ) ;
[ Xpix , Ypix]= bresenham1 (xA, yA, xB, yB , a ) ;
e l s e i f a > 1 then ,// cas 2 : a > 1.
disp ( ’ Cas␣2␣ : ␣ l ’ ’ al go ri th me ␣Bresenham1␣ s ’ ’ ap plique ␣ a pr ès ␣ symé tr ie
␣␣␣␣ par␣ rapport ␣à␣y=x ’ ) ;
ab is=1/a ;
[ Xpix , Ypix]= bresenham1 (yA, xA, yB , xB, a bi s ) ;
auxi=Xpix ;
Xpix=Ypix ;
Ypix=auxi ;
e l s e i f a >= −1then ,// cas 3 : −1 <= a < 0 .
Graphe=0;
disp ( ’ Cas␣ 3 , ␣ l e s ␣ conditions ␣de␣ v a l i d i t é ␣de␣ l ’ ’ algorithme ␣Bresenham1
␣␣␣␣ne␣ sont ␣ pas ␣ v é r i f i é e s ’ ) ;
else // cas 4 : a < −1
Graphe=0;
disp ( ’ Cas␣ 4 , ␣ l e s ␣ conditions ␣de␣ v a l i d i t é ␣de␣ l ’ ’ algorithme ␣Bresenham1
␣␣␣␣ne␣ sont ␣ pas ␣ v é r i f i é e s ’ ) ;
end ;
else // cas 5 : xA > xB
Graphe=0;
disp ( ’ Cas␣ 5 , ␣ l e s ␣ conditions ␣de␣ v a l i d i t é ␣de␣ l ’ ’ algorithme ␣Bresenham1
␣␣ne␣ sont ␣ pas ␣ v é r i f i é e s ’ ) ;
end ;
c l f ; // P r éparati on de l ’ a f f i c h a g e
i f Graphe=1 then ,// L ’ a f f i c h a g e e s t commandé quand l ’ a l g o r i t h m e s ’ a p p l i q u e .
n=size ( Xpix , " c " ) ;
disp ( ’ Le␣nombre␣de␣ p i x e l s ␣de␣ l ’ ’ a f f i c h a g e ␣ s er a ␣ ’ +string(n ) ) ;
xfpolys ( Xpix , Ypix , 3∗ones (1 , n ) ) ;
orthonorme ;
plot2d ( [ xA, xB ] , [ yA , yB ] ) ;
end ;
2.b - Commenter les commandes suivantes du cas 2 :
Listing 3 – source scilab
[ Xpix , Ypix]= bresenham1 (yA, xA, yB , xB , a bi s ) ;
3