January 26, 2021, 05:48:03 AM
Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email
?
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Home
Forum
Help
Search
Gallery
Login
Register
SyntaxBomb - Indie Coders
»
Languages & Coding
»
Blitz Code Archives
»
Graphics
»
[bb] Gradient Line by DarkEagle [ 1+ years ago ]
« previous
next »
Print
Pages: [
1
]
Go Down
Author
Topic: [bb] Gradient Line by DarkEagle [ 1+ years ago ] (Read 402 times)
BlitzBot
Jr. Member
Posts: 1
[bb] Gradient Line by DarkEagle [ 1+ years ago ]
«
on:
June 29, 2017, 12:28:41 AM »
Title :
Gradient Line
Author :
DarkEagle
Posted :
1+ years ago
Description :
gradient line
Code :
Code: BlitzBasic
Function
GradLine
(
x1,y1,x2,y2,r1,g1,b1,r2,g2,b2
)
dx# = x2-x1
dy# = y2-y1
m# = dy/dx
l# =
Sqr
(
dx^
2
+ dy^
2
)
rinc# =
(
r2-r1
)
/l
ginc# =
(
g2-g1
)
/l
binc# =
(
b2-b1
)
/l
r# = r1
g# = g1
b# = b1
For
x = x1
To
x2
argb =
(
b
Or
(
g
Shl
8
)
Or
(
r
Shl
16
)
Or
(
$ff000000
)
)
WritePixel
x,
(
m*x
)
+y1,argb
r = r + rinc
g = g + ginc
b = b + binc
Next
End Function
Comments :
Sir Gak(Posted 1+ years ago)
This can be speeded up phenomenally by using Lockbuffer and UnlockBuffer. Using a 1000 reps loop, I measured over 32000 millseconds without LockBuffer. When utilizing LockBuffer, the time drops to about 74 millseconds.Graphics 800,600GradLine(100,30,799,530,0,0,0,128,128,255)MouseWait()EndFunction GradLine(x1,y1,x2,y2,r1,g1,b1,r2,g2,b2)dx# = x2-x1dy# = y2-y1m# = dy/dxl# = Sqr(dx^2 + dy^2)rinc# = (r2-r1)/lginc# = (g2-g1)/lbinc# = (b2-b1)/lr# = r1g# = g1b# = b1timer#=MilliSecs()LockBuffer FrontBuffer()For loop=1 To 1000For x = x1 To x2 argb = (b Or (g Shl
Or (r Shl 16) Or ($ff000000)) WritePixel x,(m*x)+y1,argb r = r + rinc g = g + ginc b = b + bincNextNextUnlockBuffer FrontBuffer()Print MilliSecs()-timerEnd Function
Logged
Print
Pages: [
1
]
Go Up
« previous
next »
SyntaxBomb - Indie Coders
»
Languages & Coding
»
Blitz Code Archives
»
Graphics
»
[bb] Gradient Line by DarkEagle [ 1+ years ago ]
SimplePortal 2.3.6 © 2008-2014, SimplePortal