View difference between Paste ID: sNPqYrsE and DWzckzMy
SHOW: | | - or go back to the newest paste.
1
data = Import["http://mi.eng.cam.ac.uk/~mh521/js/data.js", "Text"];
2
x = Select[ToExpression /@ (StringSplit[data, ","][[8 ;; -2]]),
3
   NumberQ];
4
ps = Transpose[{Range[Length[x]], x}];
5
Needs["ComputationalGeometry`"];
6
ps = Table[ps[[i]], {i, 1, Length[ps], Floor[Length[ps]/500]}];
7
dt = DelaunayTriangulation[ps];
8
toEdges[{m_, ns_List}] := Map[{m, ns[[#]]} &, Range[Length[ns]]];
9
AdjToTriangles[adj_List] := 
10-
    With[{p = poly[[j]], 
10+
  Module[{verts = Union[Flatten[adj]], sides, Side}, 
11
   SetAttributes[Side, Orderless];
12
   sides = 
13
    Union[Side @@@ 
14
      Flatten[Distribute[#, List] & /@ Transpose[{verts, adj}], 1]];
15-
       Mod[RandomVariate[NormalDistribution[j/Length@poly, 0.1]], 
15+
   ReplaceList[
16-
        1]],
16+
    sides, {___, Side[i_, j_], ___, Side[i_, k_], ___, 
17-
      Darker@col,
17+
      Side[j_, k_], ___} -> {i, j, k}]];
18-
      If[j < Length[poly], Line[{First[p], poly[[j + 1, 1]]}], {}],
18+
edges = Union[Sort /@ Flatten[toEdges /@ dt, 1]];
19
triangles = AdjToTriangles[edges];
20-
      Table[
20+
21-
       Polygon[{First[p], p[[-1, i]], 
21+
toTriangles[{m_, ns_List}] := 
22-
         p[[-1, Mod[i + 1, Length@Last[p], 1]]]}]
22+
  Map[{m, ns[[#]], ns[[Mod[# + 1, Length[ns], 1]]]} &, 
23-
       , {i, Length@Last[p]}]}
23+
   Range[Length[ns]]];
24
triangles = Union[Sort /@ Flatten[toTriangles /@ poly, 1]];
25
Graphics[{
26-
    {j, Length@poly}]
26+
27
   Table[
28
    With[{p = triangles[[j]], 
29
      col = ColorData["StarryNightColors"][(*j/Length[poly]*)
30
        RandomReal[]]},
31
     {
32
      Opacity[
33
       Mod[RandomVariate[NormalDistribution[j/Length@triangles, 0.1]],
34
         1]],
35
      col,
36
      Polygon[p]
37
      }
38
     ]
39
    ,
40
    {j, Length@triangles}]
41
   ]
42
  }, PlotRange -> All, AspectRatio -> 0.618]