Peano curve: Difference between revisions

6,869 bytes added ,  3 years ago
m (Phix/pGUI)
Line 168:
wait(cond)
</lang>
=={{header|Lua}}==
Using the Bitmap class [[Bitmap#Lua|here]], with an ASCII pixel representation, then extending..
<lang lua>local PeanoLSystem = {
axiom = "L",
rules = {
L = "LFRFL-F-RFLFR+F+LFRFL",
R = "RFLFR+F+LFRFL-F-RFLFR"
},
eval = function(self, n)
local source, result = self.axiom
for i = 1, n do
result = ""
for j = 1, #source do
local ch = source:sub(j,j)
result = result .. (self.rules[ch] and self.rules[ch] or ch)
end
source = result
end
return result
end
}
 
function Bitmap:drawPath(path, x, y, dx, dy)
self:set(x, y, "@")
for i = 1, #path do
local ch = path:sub(i,i)
if (ch == "F") then
local reps = dx==0 and 1 or 3 -- aspect correction
for r = 1, reps do
x, y = x+dx, y+dy
self:set(x, y, dx==0 and "|" or "-")
end
x, y = x+dx, y+dy
self:set(x, y, "+")
elseif (ch =="-") then
dx, dy = dy, -dx
elseif (ch == "+") then
dx, dy = -dy, dx
end
end
self:set(x, y, "X")
end
 
function Bitmap:render()
for y = 1, self.height do
print(table.concat(self.pixels[y]))
end
end
 
bitmap = Bitmap(53*2,53)
bitmap:clear(" ")
bitmap:drawPath(PeanoLSystem:eval(3), 0, 0, 0, 1)
bitmap:render()</lang>
{{out}}
<pre style="font-size:50%;">@ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ +
| | | | | | | | |
+---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ +
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+ +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+
| | | | | | | | |
+ +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+---+ +---+ +---+ +---+ + + +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +
| | |
+---+ +---+ +---+ +---+ + + +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+ +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+
| | | | | | | | |
+ +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ +
| | | | | | | | |
+---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ +
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ + + +---+ +---+ +---+ +---+
| | |
+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ + + +---+ +---+ +---+ +---+
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ +
| | | | | | | | |
+---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ +
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+ +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+
| | | | | | | | |
+ +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+ +---+ + + +---+
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
| | | | | | | | | | | | | | | | | | | | | | | | | | |
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ X</pre>
 
=={{header|Perl}}==
Anonymous user