Penrose tiling: Difference between revisions

Content added Content deleted
(Added 11l)
(Added FreeBasic)
Line 158: Line 158:
{{out}}
{{out}}
[[Media:Penrose tiling cpp.svg]]
[[Media:Penrose tiling cpp.svg]]

=={{header|FreeBASIC}}==
{{trans|Phython}}
Not much of a FreeBASIC program: majority of this code is string literals that dumps an SVG on output.
<syntaxhighlight lang="vb">Sub penrose(depth As Integer)
Dim As String svg
svg = "<svg viewBox=""-100 -100 200 200"" xmlns=""http://www.w3.org/2000/svg"">" + !"\n"
svg &= " <defs>" + !"\n"
svg &= " <path id=""A0"" d=""M 80.90169943749474 58.778525229247315 L 0 0 100 0"" stroke=""black"" fill=""#8bc"" />" + !"\n"
svg &= " <path id=""B0"" d=""M 0 0 80.90169943749474 58.778525229247315 161.80339887498948 0"" stroke=""black"" fill=""#97e"" />" + !"\n"
For d As Integer = 0 To 5
svg &= " <g id=""A" : svg &= (d+1) : svg &= """ transform=""translate(100, 0) scale(0.6180339887498949)"">" + !"\n"
svg += " <use href=" & """" & "#A" & d & """ transform=""rotate(108)"" />" + !"\n"
svg &= " <use href=" & """" & "#B" & d & """ transform=""scale(-1, 1)"" />" + !"\n"
svg &= " </g>" + !"\n"
svg &= " <g id=""B" & d+1 & """>" + !"\n"
svg &= " <use href=" & """" & "#A" & d+1 & """ />" + !"\n"
svg &= " <use href=" & """" & "#B" & d & """ transform=""translate(100, 0) scale(0.6180339887498949) rotate(144) translate(-80.90169943749474,-58.778525229247315)""/>" + !"\n"
svg &= " </g>" + !"\n"
Next
svg &= " <g id=""G"">" + !"\n"
svg &= " <use href=""#A6""/>" + !"\n"
svg &= " <use href=""#A6"" transform=""scale(1, -1)"" />" + !"\n"
svg &= " </g>" + !"\n"
svg &= " </defs>" + !"\n"
svg &= " <g transform=""scale(2, 2)"">" + !"\n"
svg &= " <use href=""#G"" transform=""rotate(-144)"" />" + !"\n"
svg &= " <use href=""#G"" transform=""rotate(-72)"" />" + !"\n"
svg &= " <use href=""#G"" transform=""rotate(0)"" />" + !"\n"
svg &= " <use href=""#G"" transform=""rotate(72)"" />" + !"\n"
svg &= " <use href=""#G"" transform=""rotate(144)"" />" + !"\n"
svg &= " </g>" + !"\n"
svg &= "</svg>"
Print #1, svg
End Sub

Open "Penrose_tiling.svg" For Output As #1
penrose(6)
Close #1</syntaxhighlight>


=={{header|Go}}==
=={{header|Go}}==