Code archives/Graphics/Draw Line

This code has been declared by its author to be Public Domain code.

Download source code

Draw Line by Devils Child
(Posted 19 years ago)
it was usualy intended for my uses, but i post it here.
remember that the line you see is drawn 10.000 times to measure the correct draw time!
Graphics 640, 480, 32, 2
SetBuffer BackBuffer()

While Not KeyHit(1)
	LockBuffer()
	ms = MilliSecs()
	mx = MouseX()
	my = MouseY()
	For i = 1 To 10000
		Line2 320, 240, mx, my
	Next
	ms = MilliSecs() - ms
	UnlockBuffer()
	Text 10, 10, "Millisecs per line: " + Float(ms * .0001)
	Text 10, 30, "The line you see is drawn 10.000 times to measure the correct time!!"
	Flip 0
	Cls
Wend
End

Function Line2(p1x, p1y, p2x, p2y)
If Abs(p1y - p2y) <= Abs(p1x - p2x) Then
	If p1x > p2x Then
		ptx = p1x
		pty = p1y
		p1x = p2x
		p1y = p2y
		p2x = ptx
		p2y = pty
	EndIf
	For x = p1x To p2x
		y = p1y + (x - p1x) * (p2y - p1y) / (p2x - p1x)
		WritePixelFast x, y, $FFFFFF
	Next
Else
	If p1y > p2y Then
		ptx = p1x
		pty = p1y
		p1x = p2x
		p1y = p2y
		p2x = ptx
		p2y = pty
	EndIf
	x = p1x
	For y = p1y To p2y
		x = p1x + (y - p1y) * (p2x - p1x) / (p2y - p1y)
		WritePixelFast x, y, $FFFFFF
	Next
EndIf
End Function