Code archives/Graphics/Fast Line Part deux
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
Sort of Inspired to post this by rob farley's one. This one however is for non-straight lines. Use rob's one for straight/horizontal lines as it's optimized for that and will be faster, use this for non-straight. Three ways of color passing. Either pass the 32bit rgb value into red, or pass each red green blue value seperately, or thirdly leave red,green,blue blank(I.e default pars of -1) and it'll use the current 'color' all your other built in drawing funcs do. | |||||
function line2(x1#,y1#,x2#,y2#,red=-1,green=-1,blue=-1) if red>0 and green=-1 rgb=red else if red=-1 rgb = colorBlue() or ( colorGreen() shl 8) or ( colorRed() shl 16) else rgb=blue or (green shl 8) or (red shl 16) endif xd#=x2-x1 yd#=y2-y1 if abs(xd)>abs(yd) steps=abs(xd) else steps=abs(yd) x2=xd/float(steps) y2=yd/float(steps) for steps=steps to 1 step -1 writepixelFast x1,y1,rgb x1=x1+x2 y1=y1+y2 next end function |
Comments
None.
Code Archives Forum