Plasma effect: Difference between revisions

Content added Content deleted
Line 1,166: Line 1,166:
=={{header|Ring}}==
=={{header|Ring}}==
<lang ring>
<lang ring>
# Project : Plasma effect
# Date : 2018/01/09
# Author : Gal Zsolt (~ CalmoSoft ~)
# Email : <calmosoft@gmail.com>

# Project : Plasma effect
# Project : Plasma effect
# Date : 2018/01/09
# Date : 2018/01/09
Line 1,181: Line 1,176:


new qapp
new qapp
{
{
win1 = new qwidget()
win1 = new qwidget()
{
{
setwindowtitle("Plasma effect")
setwindowtitle("Plasma effect")
setgeometry(100,100,500,600)
setgeometry(100,100,500,600)


label1 = new qlabel(win1)
label1 = new qlabel(win1)
{
{
setgeometry(10,10,400,400)
setgeometry(10,10,400,400)
settext("")
settext("")
}
}


new qpushbutton(win1)
new qpushbutton(win1)
{
{
setgeometry(150,500,100,30)
setgeometry(150,500,100,30)
settext("Draw")
settext("Draw")
setclickevent("Draw()")
setclickevent("Draw()")
}
}
show()
}
exec()
}


func draw
show()
}
exec()
}


p1 = new qpicture()
Func Draw
color = new qcolor() { setrgb(0,0,255,255) } ### <<< BLUE
pen = new qpen() { setcolor(color) setwidth(1) }


p1 = new qpicture()
paint = new qpainter()
{
color = new qcolor() { setrgb(0,0,255,255) } ### <<< BLUE
pen = new qpen() { setcolor(color) setwidth(1) }
begin(p1)
setpen(pen)


w = 256 ### 256
paint = new qpainter()
h = 256 ### 256
{
begin(p1)
time = 0
setpen(pen)


w = 256 ### 256
for x = 0 to w -1
h = 256 ### 256
for y = 0 to h -1
time = 0
time = time + 0.99
value = sin(dist(x + time, y, 128, 128) / 8) +

sin(dist(x, y, 64, 64) / 8) +
for x = 0 to w -1
for y = 0 to h -1
sin(dist(x, y + time / 7, 192, 64) / 7) +
time = time + 0.99
sin(dist(x, y, 192, 100) / 8) + 4
value = sin(dist(x + time, y, 128, 128) / 8) +
c = floor(value * 32)
sin(dist(x, y, 64, 64) / 8) +
r = c
sin(dist(x, y + time / 7, 192, 64) / 7) +
g = (c*2)%255
sin(dist(x, y, 192, 100) / 8) + 4
b = 255-c
c = floor(value * 32)
color2 = new qcolor()
r = c
color2.setrgb(r,g,b,255)
g = (c*2)%255
pen.setcolor(color2)
b = 255-c
setpen(pen)
color2 = new qcolor()
drawpoint(x,y)
color2.setrgb(r,g,b,255)
next
pen.setcolor(color2)
next
setpen(pen)
endpaint()
drawpoint(x,y)
}
next
label1 { setpicture(p1) show() }
next
return
endpaint()
}
label1 { setpicture(p1) show() }
return


func dist(a, b, c, d)
func dist(a, b, c, d)
d = sqrt(((a - c) * (a - c) + (b - d) * (b - d)))
d = sqrt(((a - c) * (a - c) + (b - d) * (b - d)))
return d
return d

</lang>
</lang>
Output:
Output: