summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/asymptote/examples/SierpinskiGasket.asy
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-04-07 18:26:53 +0000
committerKarl Berry <karl@freefriends.org>2013-04-07 18:26:53 +0000
commitb04c2e1a42573e9735547702356c7b9a769a6855 (patch)
treec0753443f39500a062d7698fe6b94359c813f871 /Master/texmf-dist/doc/asymptote/examples/SierpinskiGasket.asy
parentfb0bf13304a356f197bfc1add17f98c07e96f17b (diff)
texmf -> texmf-dist: doc
git-svn-id: svn://tug.org/texlive/trunk@29714 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/asymptote/examples/SierpinskiGasket.asy')
-rw-r--r--Master/texmf-dist/doc/asymptote/examples/SierpinskiGasket.asy31
1 files changed, 31 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/asymptote/examples/SierpinskiGasket.asy b/Master/texmf-dist/doc/asymptote/examples/SierpinskiGasket.asy
new file mode 100644
index 00000000000..2e0d4facd64
--- /dev/null
+++ b/Master/texmf-dist/doc/asymptote/examples/SierpinskiGasket.asy
@@ -0,0 +1,31 @@
+size(200);
+import palette;
+import three;
+currentprojection=perspective(8,2,1);
+
+triple[] M={(0,0,1),1/3*(sqrt(8),0,-1),
+ 1/3*((sqrt(8))*Cos(120),(sqrt(8))*Sin(120),-1),
+ 1/3*((sqrt(8))*Cos(240),(sqrt(8))*Sin(240),-1)};
+
+int level=5;
+
+surface s;
+
+void recur(triple p, real u, int l) {
+ if(l < level)
+ for(triple V : M)
+ recur(p+u*V,u/2,l+1);
+ else
+ for(triple V : M) {
+ s.append(surface((p+u*(V+M[0]))--(p+u*(V+M[1]))--(p+u*(V+M[2]))--cycle));
+ s.append(surface((p+u*(V+M[0]))--(p+u*(V+M[2]))--(p+u*(V+M[3]))--cycle));
+ s.append(surface((p+u*(V+M[0]))--(p+u*(V+M[3]))--(p+u*(V+M[1]))--cycle));
+ s.append(surface((p+u*(V+M[3]))--(p+u*(V+M[2]))--(p+u*(V+M[1]))--cycle));
+ }
+}
+
+recur(O,0.5,1);
+
+s.colors(palette(s.map(zpart),Rainbow()));
+
+draw(s,render(merge=true));