/* ・・・Q・・・・・・・・・・・Z・p・メ・・・ア ・ス・ャ8・N・x・E・t・・・E・゚・・ ・・11 BohYoh Shibata PREPARATION */ void SetPixel( int x , int y ); void DrawLine( int x1 , int y1 , int x2 , int y2 ) { int Thresh = 0 , Index ; int Xunit = 1 ; /* ・w・・・・・フ・・・ェ */ int Yunit = 1 ; /* ・x・・・・・フ・・・ェ */ int Xdiff = x2 - x1; /* ・w・・・・・フ・ï¾ãƒ»ï¾Šãƒ»ï¾Š */ int Ydiff = y2 - y1; /* ・x・・・・・フ・ï¾ãƒ»ï¾Šãƒ»ï¾Š */ if ( Xdiff < 0 ) { Xdiff = -Xdiff ; Xunit = -1 ; } if ( Ydiff < 0 ) { Ydiff = -Ydiff ; Yunit = -1 ; } if ( Xdiff > Ydiff ) { /* ・・・[・v・フ・・・・・・・・・゚・・ */ for ( Index = 0 ; Index < Xdiff + 1 ; Index++ ) { /* ・w・・・・・フ・・・[・v */ SetPixel( x1 , y1 ); x1 += Xunit; Thresh += Ydiff; if ( Thresh >= Xdiff ) { Thresh -= Xdiff; y1 += Yunit; } } } else { for ( Index = 0 ; Index < Ydiff + 1 ; Index++ ) { /* ・x・・・・・フ・・・[・v */ SetPixel( x1 , y1 ); y1 += Yunit; Thresh += Xdiff; if ( Thresh >= Ydiff ) { Thresh -= Ydiff; x1 += Xunit; } } } }