Kronecker product based fractals: Difference between revisions

Content added Content deleted
(Added Factor)
Line 1,781: Line 1,781:


See [https://github.com/thundergnat/rc/blob/master/img/kronecker-vicsek-perl6.png Kronecker-Vicsek], [https://github.com/thundergnat/rc/blob/master/img/kronecker-carpet-perl6.png Kronecker-Carpet] and [https://github.com/thundergnat/rc/blob/master/img/kronecker-six-perl6.png Kronecker-Six] images.
See [https://github.com/thundergnat/rc/blob/master/img/kronecker-vicsek-perl6.png Kronecker-Vicsek], [https://github.com/thundergnat/rc/blob/master/img/kronecker-carpet-perl6.png Kronecker-Carpet] and [https://github.com/thundergnat/rc/blob/master/img/kronecker-six-perl6.png Kronecker-Six] images.

=={{header|Phix}}==
<lang Phix>function kronecker(sequence a, b)
integer ar = length(a),
ac = length(a[1]),
br = length(b),
bc = length(b[1])
sequence res = repeat(repeat(0,ac*bc),ar*br)
for ia=1 to ar do
integer i0 = (ia-1)*br
for ja=1 to ac do
integer j0 = (ja-1)*bc
for ib=1 to br do
integer i = i0+ib
for jb=1 to bc do
integer j = j0+jb
res[i,j] = a[ia,ja]*b[ib,jb]
end for
end for
end for
end for
return res
end function

function kroneckern(sequence m, integer n)
sequence res = m
for i=2 to n do
res = kronecker(res,m)
end for
return res
end function

procedure show(sequence m)
for i=1 to length(m) do
string s = repeat(' ',length(m[i]))
for j=1 to length(s) do
if m[i][j] then s[j] = '#' end if
end for
puts(1,s&"\n")
end for
puts(1,"\n")
end procedure

constant vicsek = {{0,1,0},
{1,1,1},
{0,1,0}},
siercp = {{1,1,1},
{1,0,1},
{1,1,1}},
xxxxxx = {{0,1,1},
{0,1,0},
{1,1,0}}

show(kroneckern(vicsek,4))
show(kroneckern(siercp,4))
show(kroneckern(xxxxxx,4))</lang>
Output same as Julia/Kotlin


=={{header|Python}}==
=={{header|Python}}==