35 lines
979 B
Plaintext
35 lines
979 B
Plaintext
Width% = 200
|
|
Height% = 200
|
|
|
|
REM Set window size:
|
|
VDU 23,22,Width%;Height%;8,16,16,128
|
|
|
|
REM Draw lines:
|
|
PROCbresenham(50,100,100,190,0,0,0)
|
|
PROCbresenham(100,190,150,100,0,0,0)
|
|
PROCbresenham(150,100,100,10,0,0,0)
|
|
PROCbresenham(100,10,50,100,0,0,0)
|
|
END
|
|
|
|
DEF PROCbresenham(x1%,y1%,x2%,y2%,r%,g%,b%)
|
|
LOCAL dx%, dy%, sx%, sy%, e
|
|
dx% = ABS(x2% - x1%) : sx% = SGN(x2% - x1%)
|
|
dy% = ABS(y2% - y1%) : sy% = SGN(y2% - y1%)
|
|
IF dx% > dy% e = dx% / 2 ELSE e = dy% / 2
|
|
REPEAT
|
|
PROCsetpixel(x1%,y1%,r%,g%,b%)
|
|
IF x1% = x2% IF y1% = y2% EXIT REPEAT
|
|
IF dx% > dy% THEN
|
|
x1% += sx% : e -= dy% : IF e < 0 e += dx% : y1% += sy%
|
|
ELSE
|
|
y1% += sy% : e -= dx% : IF e < 0 e += dy% : x1% += sx%
|
|
ENDIF
|
|
UNTIL FALSE
|
|
ENDPROC
|
|
|
|
DEF PROCsetpixel(x%,y%,r%,g%,b%)
|
|
COLOUR 1,r%,g%,b%
|
|
GCOL 1
|
|
LINE x%*2,y%*2,x%*2,y%*2
|
|
ENDPROC
|