(Sierpinski triangle with hearts)
Example 1:
(GIF animation)
gnuplot script 1:
triangle(x,y) = sqrt(3)*abs(x) - 1.5 + abs(sqrt(3)*abs(x) + 2*y - 0.5)
S0(x,y) = sqrt(3)*abs(x) - 0.75 + abs(sqrt(3)*abs(x) - 2*y - 0.25)
S1(x,y) = S0(2*x, 2*y-1) * S0(2*abs(x)-0.5*sqrt(3), 2*y+0.5)
S2(x,y) = S1(2*x, 2*y-1) * S1(2*abs(x)-0.5*sqrt(3), 2*y+0.5)
S3(x,y) = S2(2*x, 2*y-1) * S2(2*abs(x)-0.5*sqrt(3), 2*y+0.5)
S4(x,y) = S3(2*x, 2*y-1) * S3(2*abs(x)-0.5*sqrt(3), 2*y+0.5)
S5(x,y) = S4(2*x, 2*y-1) * S4(2*abs(x)-0.5*sqrt(3), 2*y+0.5)
fun(x,y) = triangle(x,y)>0 || S0(x,y)<0 || S1(x,y)<0 || S2(x,y)<0 || \
S3(x,y)<0 || S4(x,y)<0 || S5(x,y)<0 ? 0:1
set xrange [-0.5*sqrt(3):0.5*sqrt(3)]
set yrange [-0.5:1]
set pm3d map
unset colorbox
set palette model RGB defined (0 'white', 1 'red')
set size ratio -1
set samples 640
set isosamples 640
unset key
unset xtics
unset ytics
unset border
splot fun(x,y)
Example 2:
(iterations: 6)
(GIF animation)
gnuplot script 2:
S0(x,y) = sqrt(3)*abs(x) - 0.75 + abs(sqrt(3)*abs(x) - 2*y - 0.25)
S1(x,y) = S0(2*x, 2*y - 1) * S0(2*abs(x) - 0.5*sqrt(3), 2*y + 0.5)
S2(x,y) = S1(2*x, 2*y - 1) * S1(2*abs(x) - 0.5*sqrt(3), 2*y + 0.5)
S3(x,y) = S2(2*x, 2*y - 1) * S2(2*abs(x) - 0.5*sqrt(3), 2*y + 0.5)
S4(x,y) = S3(2*x, 2*y - 1) * S3(2*abs(x) - 0.5*sqrt(3), 2*y + 0.5)
S5(x,y) = S4(2*x, 2*y - 1) * S4(2*abs(x) - 0.5*sqrt(3), 2*y + 0.5)
fun(x,y) = (S0(x,y)<0 || S2(x,y)<0 || S4(x,y)<0) ? 2 : \
( (S1(x,y)<0 || S3(x,y)<0 || S5(x,y)<0) ? 1 : 0 )
set xrange [-0.5*sqrt(3):0.5*sqrt(3)]
set yrange [-0.5:1]
set pm3d map
unset colorbox
set palette model RGB defined (0 'white', 1 'green', 2 'magenta')
set size ratio -1
set samples 640
set isosamples 640
unset key
unset xtics
unset ytics
unset border
splot fun(x,y)
Graph examples:
( Mathematical softwares used:
Graph,
gnuplot )