-
Notifications
You must be signed in to change notification settings - Fork 732
/
Nick's LetterGimmick.rtf
123 lines (121 loc) · 4.4 KB
/
Nick's LetterGimmick.rtf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf440
{\fonttbl\f0\fswiss\fcharset77 Helvetica;\f1\fnil\fcharset77 Monaco;}
{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red0\green0\blue191;\red191\green0\blue0;
\red96\green96\blue96;\red0\green115\blue0;}
\deftab160
\pard\tqr\tx1180\tx1200\pardeftab160\li1200\fi-1200\ql\qnatural
\f0\fs24 \cf2 \
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab160\ql\qnatural
\f1\fs18 \cf2 (\
\cf3 var\cf2 linetext, drawletter;\
\cf3 var\cf2 w, h = 800, v = 60, seed = \cf3 Date\cf2 .seed, run = \cf3 true\cf2 ;\
\cf3 var\cf2 time, name, sourcestring;\
\cf3 var\cf2 yellowness, penwidth, pen;\
\
\cf4 //name=[\\s,\\u,\\p,\\e,\\r,\\c,\\o,\\l,\\l,\\i,\\d,\\e,\\r];\cf2 \
\
\cf4 //sourcestring= "any lower case text";\cf2 \
\
sourcestring= \cf5 "welcome to supercollider"\cf2 ;\
\
name=\cf3 Array\cf2 .fill(sourcestring.size,\{\cf3 arg\cf2 i; sourcestring[i].asSymbol\});\
\
time=0;\
\
linetext= (\
\cf6 'a'\cf2 :[[[0,1],[0.5,0]],[[0.5,0],[1,1]],[[0.25,0.5],[0.75,0.5]]],\
\cf6 'b'\cf2 :[[[0,1],[0,0]],[[0,1],[1,1]],[[0,0],[1,0]],[[0,0.5],[0.75,0.5]],[[0.75,0.5],[1,0.75]],[[0.75,0.5],[1,0.25]],[[1,0.75],[1,1]],[[1,0.25],[1,0]]],\
\cf6 'c'\cf2 :[[[0,1],[0,0]],[[0,0],[1,0]],[[0,1],[1,1]]],\
\cf6 'd'\cf2 :[[[0,1],[0,0]],[[0,0],[0.75,0]],[[0,1],[0.75,1]],[[0.75,1],[1,0.75]],[[0.75,0],[1,0.25]],[[1,0.25],[1,0.75]]],\
\cf6 'e'\cf2 :[[[0,0],[0,1]],[[0,0],[1,0]],[[0,1],[1,1]],[[0,0.5],[1,0.5]]],\
\cf6 'f'\cf2 :[[[0,0],[0,1]],[[0,0],[1,0]],[[0,0.5],[1,0.5]]],\
\cf6 'g'\cf2 :[[[0,1],[0,0]],[[0,0],[1,0]],[[0,1],[1,1]],[[1,1],[1,0.5]],[[0.5,0.5],[1,0.5]]],\
\cf6 'h'\cf2 :[[[0,1],[0,0]],[[0,0.5],[1,0.5]],[[1,1],[1,0]]],\
\cf6 'i'\cf2 :[[[0,0],[1,0]],[[0.5,0],[0.5,1]],[[0,1],[1,1]]],\
\cf6 'j'\cf2 :[[[0,0],[1,0]],[[0.5,0],[0.5,1]],[[0,1],[0.5,1]]],\
\cf6 'k'\cf2 :[[[0,1],[0,0]],[[0,0.5],[1,1]],[[0,0.5],[1,0]]],\
\cf6 'l'\cf2 :[[[0,1],[0,0]],[[0,1],[1,1]]],\
\cf6 'm'\cf2 :[[[0,1],[0,0]],[[0,0],[0.5,0.5]],[[0.5,0.5],[1,0]],[[1,0],[1,1]]],\
\cf6 'n'\cf2 :[[[0,1],[0,0]],[[0,0],[1,1]],[[1,1],[1,0]]],\
\cf6 'o'\cf2 :[[[0,1],[0,0]],[[0,0],[1,0]],[[0,1],[1,1]],[[1,0],[1,1]]],\
\cf6 'p'\cf2 :[[[0,0],[0,1]],[[0,0],[1,0]],[[0,0.5],[1,0.5]],[[1,0],[1,0.5]]],\
\cf6 'q'\cf2 :[[[0,0],[0,0.75]],[[0,0],[0.75,0]],[[0,0.75],[0.75,0.75]],[[0.75,0],[0.75,0.75]],[[0.5,0.5],[1,1]]],\
\cf6 'r'\cf2 :[[[0,0],[0,1]],[[0,0],[1,0]],[[0,0.5],[1,0.5]],[[1,0],[1,0.5]],[[0,0.5],[1,1]]],\
\cf6 's'\cf2 :[[[0,0],[0,0.5]],[[0,0],[1,0]],[[0,1],[1,1]],[[0,0.5],[1,0.5]],[[1,0.5],[1,1]]],\
\cf6 't'\cf2 :[[[0,0],[1,0]],[[0.5,0],[0.5,1]]],\
\cf6 'u'\cf2 :[[[0,1],[0,0]],[[0,1],[1,1]],[[1,0],[1,1]]],\
\cf6 'v'\cf2 :[[[0,0],[0.5,1]],[[0.5,1],[1,0]]],\
\cf6 'w'\cf2 :[[[0,0],[0.25,1]],[[0.25,1],[0.5,0.5]],[[0.5,0.5],[0.75,1]],[[0.75,1],[1,0]]],\
\cf6 'x'\cf2 :[[[0,0],[1,1]],[[0,1],[1,0]]],\
\cf6 'y'\cf2 :[[[0,0],[0.5,0.5]],[[0.5,0.5],[1,0]],[[0.5,0.5],[0.5,1]]],\
\cf6 'z'\cf2 :[[[0,1],[1,0]],[[0,0],[1,0]],[[0,1],[1,1]]],\
(\cf5 " "\cf2 .asSymbol):[[[0,1],[1,1]],[[0,0.8],[0,1]],[[1,0.8],[1,1]]]\
);\
\
w = \cf3 GUI\cf2 .window.new(\cf5 "welcome"\cf2 , \cf3 Rect\cf2 (40, 500, h, v));\
w.view.background = \cf3 Color\cf2 .blue(0.5);\
w.onClose = \{ run = \cf3 false\cf2 \};\
w.front;\
\
pen = \cf3 GUI\cf2 .pen;\
drawletter=\{\cf3 arg\cf2 which, startx, starty, xscale=100, yscale,prop=1.0;\
\cf3 var\cf2 data;\
\
yscale= yscale ? xscale;\
\
data= linetext[which];\
\
prop=(round((data.size)*prop).asInteger).max(1);\
\
prop.do(\{\cf3 arg\cf2 i;\
\cf3 var\cf2 val=data[i];\
\
pen.beginPath;\
pen.line(\cf3 Point\cf2 (startx+(xscale*val[0][0]),starty+(yscale*val[0][1])),\cf3 Point\cf2 (startx+(xscale*val[1][0]),starty+(yscale*val[1][1])));\
pen.stroke;\
\
\});\
\
\};\
\
\
yellowness=rrand(0.7,0.9);\
\
penwidth=rrand(2,3);\
\
w.drawHook = \{\
\
pen.use \{\cf3 var\cf2 xoscil, xsizoscil,yoscil, todraw, usedtime;\
\
pen.width= penwidth;\
pen.color=\cf3 Color\cf2 .yellow(yellowness);\
\
usedtime=time.min(1.0);\
\
todraw=(round((name.size)*usedtime).asInteger).max(1);\
\
todraw.do(\{\cf3 arg\cf2 j;\
\
xoscil= sin(2*pi*time+(j*pi*0.13))*140/(1+(10*time));\
\
yoscil= sin(2*pi*time+(j*pi*0.03))*200/(1+(200*time));\
\
xsizoscil= time*5+5;\
\
drawletter.value(name[j],50+(25*j)+(xoscil),10+yoscil,xsizoscil,xsizoscil,usedtime);\
\
\});\
\
\};\
\
\
\};\
\
\{ while \{ time<2.0 \} \{ \
\
w.refresh; \
time=(time+0.025); \cf4 //%2.0;\cf2 \
0.05.wait; \} \}.fork(\cf3 AppClock\cf2 )\
\
)\
}