Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- as = N[{{1/Sqrt[10], 1/Sqrt[6], 1/Sqrt[3], 1}, {1/Sqrt[10], 1/Sqrt[6],
- 1/Sqrt[3], -1}, {1/Sqrt[10], 1/Sqrt[6], -2/Sqrt[3], 0}, {1/
- Sqrt[10], -(Sqrt[3]/Sqrt[2]), 0, 0}, {-2 Sqrt[2]/Sqrt[5], 0, 0,
- 0}}];
- simplex[c_, s_] := s (Map[# + c &, as]);
- rot[ps_, t_] := (RotationMatrix[
- t, {{0, 0, 1, 0}, {0, 1, 0, 0}}].RotationMatrix[
- 2 t, {{1, 0, 0, 0}, {0, 0, 0, 1}}].#) & /@ ps;
- proj[ps_, t_] := Most[#]/(3 - Last[#]) & /@ rot[ps, t];
- Plot4D[ptlist_, t_, opts : OptionsPattern[Graphics3D]] :=
- Graphics3D[
- Table[
- GraphicsComplex[proj[ps, t],
- {
- {RGBColor[0.8, 0.9, 0.95], Tube[
- Tuples[Range[Length[ps]], 2]
- , 0.005],
- White,
- Polygon[
- Tuples[Range[Length[ps]], 3]
- ]
- }
- }
- ]
- , {ps, ptlist}],
- Evaluate[opts]
- ];
- Clear[sier];
- sier[0] = {simplex[{0, 0, 0, 0}, 1]};
- sier[n_] :=
- Flatten[Table[Table[Map[(a + #)/2 &, s], {a, s}], {s, sier[n - 1]}],
- 1];
- niter=2
- Manipulate[
- Plot4D[
- sier[niter]
- , t, PlotRange -> 0.5, Boxed -> False,
- Lighting -> {{"Directional",
- RGBColor[1, .7, .1], {{5, 5, 4}, {5, 5, 0}}}}],
- {t, 0, 2 Pi}]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement