Ooops
November 28, 2020, 11:16:16 AM

Author Topic: [bb] FastLine by PRJ [ 1+ years ago ]  (Read 378 times)

Offline BlitzBot

  • Jr. Member
  • **
  • Posts: 1
[bb] FastLine by PRJ [ 1+ years ago ]
« on: June 29, 2017, 12:28:40 AM »
Title : FastLine
Author : PRJ
Posted : 1+ years ago

Description : Fast line drawing in plain blitz

Code :
Code: BlitzBasic
  1. Function FLine(x1,y1,x2,y2,rgb)
  2.         xd=(x2-x1)
  3.         yd=(y2-y1)
  4.         If Abs(xd)>Abs(yd)
  5.                 If x1>x2
  6.                         temp=x1
  7.                         x1=x2
  8.                         x2=temp
  9.                         temp=y1
  10.                         y1=y2
  11.                         y2=temp
  12.                         xd=(x2-x1)
  13.                         yd=(y2-y1)
  14.                 EndIf
  15.                 grad#=Float yd/Float xd
  16.                 If grad#=0.0 Then grad#=0.0001
  17.                 yf#=Float y1+grad#
  18.                 For x=x1 To x2 Step 1
  19.                         WritePixelFast x,Int(yf#),rgb
  20.                         yf#=yf#+(grad#*1.0)
  21.                 Next
  22.         Else
  23.                 If y1>y2
  24.                         temp=x1
  25.                         x1=x2
  26.                         x2=temp
  27.                         temp=y1
  28.                         y1=y2
  29.                         y2=temp
  30.                         xd=(x2-x1)
  31.                         yd=(y2-y1)
  32.                 EndIf
  33.                 grad#=Float xd/Float yd
  34.                 If grad#=0.0 Then grad#=0.0001
  35.                 xf#=Float x1+grad#
  36.                 For y=y1 To y2 Step 1
  37.                         WritePixelFast Int(xf#),y,rgb
  38.                         xf#=xf#+(grad#*1.0)
  39.                 Next
  40.         EndIf
  41. End Function


Comments : none...

 

SimplePortal 2.3.6 © 2008-2014, SimplePortal