40 lines
950 B
Plaintext
40 lines
950 B
Plaintext
' version 16-09-2015
|
|
' compile with: fbc -s console
|
|
' OR compile with: fbc -s gui
|
|
|
|
' Ported from the C version
|
|
Sub Br_line(x0 As Integer, y0 As Integer, x1 As Integer, y1 As Integer, Col As Integer = &HFFFFFF)
|
|
|
|
Dim As Integer dx = Abs(x1 - x0), dy = Abs(y1 - y0)
|
|
Dim As Integer sx = IIf(x0 < x1, 1, -1)
|
|
Dim As Integer sy = IIf(y0 < y1, 1, -1)
|
|
Dim As Integer er = IIf(dx > dy, dx, -dy) \ 2, e2
|
|
|
|
Do
|
|
PSet(x0, y0), col
|
|
If (x0 = x1) And (y0 = y1) Then Exit Do
|
|
e2 = er
|
|
If e2 > -dx Then Er -= dy : x0 += sx
|
|
If e2 < dy Then Er += dx : y0 += sy
|
|
Loop
|
|
|
|
End Sub
|
|
|
|
' ------=< MAIN >=------
|
|
|
|
Dim As Double x0, y0, x1, y1
|
|
|
|
ScreenRes 400, 400, 32
|
|
WindowTitle" Press key to end demo"
|
|
Randomize Timer
|
|
|
|
Do
|
|
Cls
|
|
For a As Integer = 1 To 20
|
|
Br_line(Rnd*380+10, Rnd*380+10, Rnd*380+10, Rnd*380+10, Rnd*&hFFFFFF)
|
|
Next
|
|
Sleep 2000
|
|
Loop Until InKey <> "" ' loop until a key is pressed
|
|
|
|
End
|