-
Notifications
You must be signed in to change notification settings - Fork 3
/
particle.js
437 lines (422 loc) · 22 KB
/
particle.js
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
// *** particle ***
// --- inherits from game_object
// spec:
// game_object spec
var particle = function(p, spec) {
// --- defaults ---
// was 15
spec.width = spec.width || 10;
spec.height = spec.height || 10;
// obj to return
var obj = game_object(p, spec);
obj.get_type = function() {
return "particle";
};
// --- private variables ---
//var par_shape = p.loadShape("images/virusfinal.svg");
//var par_image = p.loadImage("images/virus1.png");
var par_image = image_manager.get_image("tinyvirus_trans.png");
//var mutation = spec.mutation;
// --- public methods ---
// implementing game_object interface
// update is default (move)
// draw makes a small virus particle
// (circle for now)
obj.draw = function() {
var pos = obj.get_pos();
p.shapeMode(obj.get_mode());
//var color = mutation.get_color();
p.fill(obj.get_color());
p.noStroke();
p.ellipse(pos.x, pos.y,
obj.get_width() * .75, obj.get_height() * .75);
p.imageMode(obj.get_mode());
p.image(par_image, pos.x, pos.y, obj.get_width(), obj.get_height());
//var d = new Date();
//console.log(d.getMilliseconds());
//p.shape(par_shape, pos.x, pos.y,
//obj.get_width() + 20, obj.get_height() + 20);
//draw(canvas.getContext('2d'));
//canvas.getContext('2d').drawSvg("images/virusFinal.svg", 300, 10, 20, 20);
//console.log("a " + d.getMilliseconds());
};
// override for circular object
obj.calc_radius = function() {
return obj.get_width()/2;
};
obj.set_radius(obj.calc_radius());
return obj;
}
// SVG -> Javascript code to draw the particle
/*
var draw = function(ctx) {
ctx.save();
ctx.strokeStyle = 'rgba(0,0,0,0)';
ctx.lineCap = 'butt';
ctx.lineJoin = 'miter';
ctx.miterLimit = 4;
ctx.save();
ctx.restore();
ctx.save();
ctx.restore();
ctx.save();
ctx.scale(0.02,0.02);
ctx.save();
ctx.fillStyle = "#fff1d0";
ctx.strokeStyle = "rgba(185, 185, 185, 0.68627)";
ctx.lineWidth = 5;
ctx.miterLimit = 4;
ctx.beginPath();
ctx.moveTo(411.42857,373.36218);
ctx.bezierCurveTo(378.29148999999995,373.36218,351.42857,400.2251,351.42857,433.36218);
ctx.bezierCurveTo(351.42857,435.74656000000004,351.59556999999995,438.08169000000004,351.86607,440.39343);
ctx.bezierCurveTo(333.68726999999996,446.05755000000005,316.62739,454.24753000000004,301.08482,464.54968);
ctx.bezierCurveTo(293.76497,456.45166,283.20419999999996,451.36218,271.42857,451.36218);
ctx.bezierCurveTo(249.33718,451.36218,231.42856999999998,469.27079000000003,231.42856999999998,491.36218);
ctx.bezierCurveTo(231.42856999999998,503.13781,236.51805,513.69858,244.61606999999998,521.0184300000001);
ctx.bezierCurveTo(234.27291999999997,536.6228600000001,226.0638,553.7583900000001,220.39731999999998,572.0184300000001);
ctx.bezierCurveTo(217.46769999999998,571.5787200000001,214.48073999999997,571.3621800000001,211.42856999999998,571.3621800000001);
ctx.bezierCurveTo(178.29148999999998,571.3621800000001,151.42856999999998,598.2251000000001,151.42856999999998,631.3621800000001);
ctx.bezierCurveTo(151.42856999999998,664.49926,178.29148999999998,691.3621800000001,211.42856999999998,691.3621800000001);
ctx.bezierCurveTo(214.48073999999997,691.3621800000001,217.46769999999998,691.1456400000001,220.39731999999998,690.7059300000001);
ctx.bezierCurveTo(226.0638,708.9659700000001,234.27291999999997,726.1015000000001,244.61606999999998,741.7059300000001);
ctx.bezierCurveTo(236.51805,749.02578,231.42856999999998,759.5865500000001,231.42856999999998,771.3621800000001);
ctx.bezierCurveTo(231.42856999999998,793.4535700000001,249.33718,811.3621800000001,271.42857,811.3621800000001);
ctx.bezierCurveTo(283.20419999999996,811.3621800000001,293.76497,806.2727000000001,301.08482,798.1746800000001);
ctx.bezierCurveTo(316.68924999999996,808.5178300000001,333.82478,816.7269500000001,352.08482,822.3934300000001);
ctx.bezierCurveTo(351.64511,825.3230500000001,351.42857,828.31001,351.42857,831.3621800000001);
ctx.bezierCurveTo(351.42857,864.49926,378.29148999999995,891.3621800000001,411.42857,891.3621800000001);
ctx.bezierCurveTo(444.56565,891.3621800000001,471.42857,864.49926,471.42857,831.3621800000001);
ctx.bezierCurveTo(471.42857,828.31001,471.21202999999997,825.3230500000001,470.77232,822.3934300000001);
ctx.bezierCurveTo(489.03236,816.7269500000001,506.16789,808.5178300000001,521.77232,798.1746800000001);
ctx.bezierCurveTo(529.09217,806.2727000000001,539.6529400000001,811.3621800000001,551.42857,811.3621800000001);
ctx.bezierCurveTo(573.5199600000001,811.3621800000001,591.42857,793.4535700000001,591.42857,771.3621800000001);
ctx.bezierCurveTo(591.42857,759.5865500000001,586.33909,749.02578,578.24107,741.7059300000001);
ctx.bezierCurveTo(588.5842200000001,726.1015000000001,596.7933400000001,708.9659700000001,602.45982,690.7059300000001);
ctx.bezierCurveTo(605.38944,691.1456400000001,608.3764,691.3621800000001,611.42857,691.3621800000001);
ctx.bezierCurveTo(644.56565,691.3621800000001,671.42857,664.49926,671.42857,631.3621800000001);
ctx.bezierCurveTo(671.42857,598.2251000000001,644.56565,571.3621800000001,611.42857,571.3621800000001);
ctx.bezierCurveTo(608.3764,571.3621800000001,605.38944,571.5787200000001,602.45982,572.0184300000001);
ctx.bezierCurveTo(596.7933400000001,553.7583900000001,588.5842200000001,536.6228600000001,578.24107,521.0184300000001);
ctx.bezierCurveTo(586.33909,513.6985800000001,591.42857,503.13781000000006,591.42857,491.3621800000001);
ctx.bezierCurveTo(591.42857,469.2707900000001,573.5199600000001,451.3621800000001,551.42857,451.3621800000001);
ctx.bezierCurveTo(539.6529400000001,451.3621800000001,529.09217,456.45166000000006,521.77232,464.5496800000001);
ctx.bezierCurveTo(506.22975,454.2475300000001,489.16987000000006,446.0575500000001,470.99107000000004,440.3934300000001);
ctx.bezierCurveTo(471.26157000000006,438.0816900000001,471.42857000000004,435.7465600000001,471.42857000000004,433.3621800000001);
ctx.bezierCurveTo(471.42857000000004,400.2251000000001,444.56565000000006,373.3621800000001,411.42857000000004,373.3621800000001);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "#d4d4d4";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.globalAlpha = 0.2752293646335602;
ctx.beginPath();
ctx.moveTo(530.99107,472.99893);
ctx.bezierCurveTo(556.1068300000001,506.42843999999997,570.99107,547.96659,570.99107,592.99893);
ctx.bezierCurveTo(570.99107,640.61609,554.33443,684.34142,526.55357,718.68643);
ctx.bezierCurveTo(529.38723,724.17581,530.99107,730.39551,530.99107,736.99893);
ctx.bezierCurveTo(530.99107,759.09032,513.0824600000001,776.99893,490.99107000000004,776.99893);
ctx.bezierCurveTo(481.81567,776.99893,473.36493,773.91293,466.61607000000004,768.71768);
ctx.bezierCurveTo(459.44539000000003,772.62788,452.0033,776.1000799999999,444.33482000000004,779.12393);
ctx.bezierCurveTo(459.07273000000004,788.9998499999999,469.20043000000004,805.23816,470.77232000000004,823.90518);
ctx.bezierCurveTo(552.02543,798.48635,610.99107,722.63081,610.99107,632.99893);
ctx.bezierCurveTo(610.99107,567.57432,579.55868,509.48801,530.99107,472.99893);
ctx.closePath();
ctx.moveTo(250.99107000000004,752.99893);
ctx.bezierCurveTo(275.86402000000004,786.1052599999999,310.78272000000004,811.21984,351.20982000000004,823.87393);
ctx.bezierCurveTo(352.19252000000006,812.2756499999999,356.47693000000004,801.61852,363.11607000000004,792.84268);
ctx.bezierCurveTo(321.11956000000004,791.21726,282.46387000000004,776.64461,250.99107000000004,752.99893);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(185, 185, 185, 0.68627)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(330.99107,780.39343);
ctx.bezierCurveTo(353.16121999999996,780.39343,371.13367,763.9635099999999,371.13367,743.6961799999999);
ctx.bezierCurveTo(371.13367,742.58201,371.07697,741.48232,370.97059,740.39343);
ctx.bezierCurveTo(369.14252,759.1119,351.94243,773.78793,330.99107000000004,773.78793);
ctx.bezierCurveTo(310.03970000000004,773.78793,292.83962,759.1119,291.01155000000006,740.39343);
ctx.bezierCurveTo(290.90521000000007,741.48232,290.8484700000001,742.58201,290.8484700000001,743.6961799999999);
ctx.bezierCurveTo(290.8484700000001,763.9635099999999,308.82092000000006,780.3934299999999,330.9910700000001,780.3934299999999);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(185, 185, 185, 0.68627)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(530.99107,606.99893);
ctx.bezierCurveTo(553.1612200000001,606.99893,571.13367,590.5690099999999,571.13367,570.30168);
ctx.bezierCurveTo(571.13367,569.1875100000001,571.0769700000001,568.0878200000001,570.97059,566.9989300000001);
ctx.bezierCurveTo(569.14252,585.7174000000001,551.9424300000001,600.3934300000001,530.99107,600.3934300000001);
ctx.bezierCurveTo(510.03970000000004,600.3934300000001,492.83962,585.7174000000001,491.01155000000006,566.9989300000001);
ctx.bezierCurveTo(490.90521000000007,568.0878200000001,490.8484700000001,569.1875100000001,490.8484700000001,570.30168);
ctx.bezierCurveTo(490.8484700000001,590.56901,508.82092000000006,606.99893,530.99107,606.99893);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(185, 185, 185, 0.68627)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(290.99107,606.99893);
ctx.bezierCurveTo(313.16121999999996,606.99893,331.13367,590.5690099999999,331.13367,570.30168);
ctx.bezierCurveTo(331.13367,569.1875100000001,331.07697,568.0878200000001,330.97059,566.9989300000001);
ctx.bezierCurveTo(329.14252,585.7174000000001,311.94243,600.3934300000001,290.99107000000004,600.3934300000001);
ctx.bezierCurveTo(270.03970000000004,600.3934300000001,252.83962000000002,585.7174000000001,251.01155000000003,566.9989300000001);
ctx.bezierCurveTo(250.90521000000004,568.0878200000001,250.84847000000002,569.1875100000001,250.84847000000002,570.30168);
ctx.bezierCurveTo(250.84847000000002,590.56901,268.82092,606.99893,290.99107000000004,606.99893);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(185, 185, 185, 0.68627)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(410.99107,700.39343);
ctx.bezierCurveTo(444.23506999999995,700.39343,471.18464,675.74855,471.18464,645.34755);
ctx.bezierCurveTo(471.18464,643.6763,471.09964,642.02676,470.94010000000003,640.39343);
ctx.bezierCurveTo(468.19892000000004,668.47114,442.4075,690.48518,410.99107000000004,690.48518);
ctx.bezierCurveTo(379.57463,690.48518,353.78322000000003,668.47114,351.04204000000004,640.39343);
ctx.bezierCurveTo(350.88258,642.02676,350.79750000000007,643.6763,350.79750000000007,645.34755);
ctx.bezierCurveTo(350.79750000000007,675.7485499999999,377.74707000000006,700.39343,410.9910700000001,700.39343);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(255, 255, 255, 0.77647)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(379.52232,680.31143);
ctx.bezierCurveTo(369.29332,669.55083,362.99107,655.01762,362.99107,638.99893);
ctx.bezierCurveTo(362.99107,605.86185,389.85398999999995,578.99893,422.99107,578.99893);
ctx.bezierCurveTo(432.90058,578.99893,442.2231,581.43242,450.45982,585.68643);
ctx.bezierCurveTo(439.5286,574.18711,424.10945999999996,566.99893,406.99107,566.99893);
ctx.bezierCurveTo(373.85398999999995,566.99893,346.99107,593.86185,346.99107,626.99893);
ctx.bezierCurveTo(346.99107,650.22651,360.21569999999997,670.34016,379.52232,680.31143);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(255, 255, 255, 0.77647)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(385.52232,490.31143);
ctx.bezierCurveTo(375.29332,479.55082999999996,368.99107,465.01761999999997,368.99107,448.99893);
ctx.bezierCurveTo(368.99107,415.86185,395.85398999999995,388.99893,428.99107,388.99893);
ctx.bezierCurveTo(438.90058,388.99893,448.2231,391.43242,456.45982,395.68643);
ctx.bezierCurveTo(445.5286,384.18710999999996,430.10945999999996,376.99893,412.99107,376.99893);
ctx.bezierCurveTo(379.85398999999995,376.99893,352.99107,403.86184999999995,352.99107,436.99893);
ctx.bezierCurveTo(352.99107,460.22650999999996,366.21569999999997,480.34015999999997,385.52232,490.31143);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(185, 185, 185, 0.68627)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(410.99107,496.90718);
ctx.bezierCurveTo(444.23506999999995,496.90718,471.18464,472.2623,471.18464,441.86129999999997);
ctx.bezierCurveTo(471.18464,440.19005,471.09964,438.54051,470.94010000000003,436.90718);
ctx.bezierCurveTo(468.19892000000004,464.98489,442.4075,486.99893,410.99107000000004,486.99893);
ctx.bezierCurveTo(379.57463,486.99893,353.78322000000003,464.98488999999995,351.04204000000004,436.90718);
ctx.bezierCurveTo(350.88258,438.54051,350.79750000000007,440.19005,350.79750000000007,441.86129999999997);
ctx.bezierCurveTo(350.79750000000007,472.2623,377.74707000000006,496.90718,410.9910700000001,496.90718);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(255, 255, 255, 0.77647)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(385.52232,880.31143);
ctx.bezierCurveTo(375.29332,869.55083,368.99107,855.01762,368.99107,838.99893);
ctx.bezierCurveTo(368.99107,805.86185,395.85398999999995,778.99893,428.99107,778.99893);
ctx.bezierCurveTo(438.90058,778.99893,448.2231,781.43242,456.45982,785.68643);
ctx.bezierCurveTo(445.5286,774.18711,430.10945999999996,766.99893,412.99107,766.99893);
ctx.bezierCurveTo(379.85398999999995,766.99893,352.99107,793.86185,352.99107,826.99893);
ctx.bezierCurveTo(352.99107,850.22651,366.21569999999997,870.34016,385.52232,880.31143);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(255, 255, 255, 0.77647)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(214.99107,572.99893);
ctx.bezierCurveTo(181.85399,572.99893,154.99107,599.86185,154.99107,632.99893);
ctx.bezierCurveTo(154.99107,656.22651,168.2157,676.34016,187.52232,686.31143);
ctx.bezierCurveTo(177.29332,675.55083,170.99107,661.01762,170.99107,644.99893);
ctx.bezierCurveTo(170.99107,616.5388399999999,190.81059000000002,592.72182,217.39732,586.56143);
ctx.bezierCurveTo(218.55700000000002,582.09924,219.88045,577.67801,221.33482,573.34268);
ctx.bezierCurveTo(219.25357,573.12367,217.13087000000002,572.99893,214.99107,572.99893);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(255, 255, 255, 0.77647)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(610.99107,572.99893);
ctx.bezierCurveTo(608.53101,572.99893,606.12354,573.18,603.74107,573.46768);
ctx.bezierCurveTo(605.0957900000001,578.3556199999999,606.25589,583.31197,607.24107,588.34268);
ctx.bezierCurveTo(613.4279,586.18599,620.06901,584.99893,626.99107,584.99893);
ctx.bezierCurveTo(636.90058,584.99893,646.2231,587.43242,654.45982,591.68643);
ctx.bezierCurveTo(643.5286,580.18711,628.10946,572.99893,610.99107,572.99893);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(255, 255, 255, 0.77647)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(270.40757,590.02506);
ctx.bezierCurveTo(263.48731000000004,583.2801400000001,259.22363,574.1704900000001,259.22363,564.12971);
ctx.bezierCurveTo(259.22363,543.3588500000001,277.39728,526.5207300000001,299.81559000000004,526.5207300000001);
ctx.bezierCurveTo(306.51970000000006,526.5207300000001,312.82669000000004,528.0460800000001,318.39911000000006,530.71256);
ctx.bezierCurveTo(311.0037700000001,523.5046000000001,300.5722200000001,518.9989300000001,288.99107000000004,518.9989300000001);
ctx.bezierCurveTo(266.57276,518.9989300000001,248.39911000000004,535.8370500000001,248.39911000000004,556.6079100000001);
ctx.bezierCurveTo(248.39911000000004,571.1673400000001,257.34600000000006,583.7749000000001,270.40757,590.02506);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(255, 255, 255, 0.77647)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(509.82696,588.84012);
ctx.bezierCurveTo(503.02601999999996,582.03508,498.83585,572.84422,498.83585,562.71395);
ctx.bezierCurveTo(498.83585,541.75794,516.69616,524.76973,538.7279599999999,524.76973);
ctx.bezierCurveTo(545.31648,524.76973,551.51473,526.30868,556.9910699999999,528.99893);
ctx.bezierCurveTo(549.7232399999999,521.72672,539.4715399999999,517.18089,528.0900599999999,517.18089);
ctx.bezierCurveTo(506.0582699999999,517.18089,488.19795999999985,534.1691,488.19795999999985,555.1251);
ctx.bezierCurveTo(488.19795999999985,569.81431,496.9905899999998,582.5342499999999,509.8269599999999,588.84012);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(255, 255, 255, 0.77647)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(249.11607,744.46768);
ctx.bezierCurveTo(239.42177,750.46789,232.99107,761.00366,232.99107,772.99893);
ctx.bezierCurveTo(232.99107,786.0855399999999,240.67045000000002,797.41228,251.86607,803.03018);
ctx.bezierCurveTo(245.93443000000002,796.96757,242.27232,788.77399,242.27232,779.74893);
ctx.bezierCurveTo(242.27232,768.88478,247.54392,759.24582,255.74107,753.06143);
ctx.bezierCurveTo(253.45899,750.25464,251.24597,747.3976,249.11607,744.46768);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(255, 255, 255, 0.77647)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(572.05357,748.21768);
ctx.bezierCurveTo(571.2613600000001,749.2555,570.45924,750.28971,569.64732,751.31143);
ctx.bezierCurveTo(573.66413,751.8387799999999,577.4639400000001,753.04166,580.92857,754.78018);
ctx.bezierCurveTo(578.36622,752.16126,575.3596,749.93576,572.05357,748.21768);
ctx.closePath();
ctx.moveTo(530.45982,788.87393);
ctx.bezierCurveTo(528.51967,790.28432,526.54551,791.65748,524.55357,792.99893);
ctx.bezierCurveTo(527.85458,799.46132,533.17976,804.78457,539.77232,808.09268);
ctx.bezierCurveTo(534.7460100000001,802.9553999999999,531.37795,796.27958,530.45982,788.87393);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(185, 185, 185, 0.68627)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(490.99107,780.99893);
ctx.bezierCurveTo(513.16122,780.99893,531.1336699999999,764.5690099999999,531.1336699999999,744.30168);
ctx.bezierCurveTo(531.1336699999999,743.1875100000001,531.07697,742.0878200000001,530.9705899999999,740.9989300000001);
ctx.bezierCurveTo(529.1425199999999,759.7174000000001,511.9424299999999,774.3934300000001,490.9910699999999,774.3934300000001);
ctx.bezierCurveTo(470.0396999999999,774.3934300000001,452.8396199999999,759.7174000000001,451.01154999999994,740.9989300000001);
ctx.bezierCurveTo(450.90520999999995,742.0878200000001,450.84846999999996,743.1875100000001,450.84846999999996,744.30168);
ctx.bezierCurveTo(450.84846999999996,764.56901,468.82091999999994,780.99893,490.99107,780.99893);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(255, 255, 255, 0.77647)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(252.5773,518.27473);
ctx.bezierCurveTo(246.64565000000002,512.21212,242.99107,504.02398999999997,242.99107,494.99893);
ctx.bezierCurveTo(242.99107,476.32923,258.56848,461.19444,277.78418,461.19444);
ctx.bezierCurveTo(283.53056,461.19444,288.93655,462.56549,293.71290999999997,464.96223);
ctx.bezierCurveTo(287.37404999999995,458.48341999999997,278.43271999999996,454.43354,268.50602,454.43354);
ctx.bezierCurveTo(249.29031999999998,454.43354,233.71290999999997,469.56833,233.71290999999997,488.23803);
ctx.bezierCurveTo(233.71290999999997,501.32464,241.38166999999996,512.65684,252.57729999999998,518.27473);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(255, 255, 255, 0.77647)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(550.99107,456.99893);
ctx.bezierCurveTo(541.15601,456.99893,532.2878900000001,460.96844,525.95982,467.34268);
ctx.bezierCurveTo(529.09436,469.54866,532.14881,471.83973999999995,535.14732,474.21768);
ctx.bezierCurveTo(541.4817800000001,467.78294999999997,550.38418,463.74893,560.27232,463.74893);
ctx.bezierCurveTo(566.0187000000001,463.74893,571.43347,465.13343999999995,576.20982,467.53018);
ctx.bezierCurveTo(569.87097,461.05136999999996,560.91777,456.99893,550.99107,456.99893);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(255, 255, 255, 0.77647)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(310.12323,762.27473);
ctx.bezierCurveTo(303.07660999999996,756.21629,298.73508,748.0337999999999,298.73508,739.01495);
ctx.bezierCurveTo(298.73508,720.35811,317.24055999999996,705.23373,340.06822999999997,705.23373);
ctx.bezierCurveTo(346.89475,705.23373,353.3169,706.60384,358.99107,708.9989300000001);
ctx.bezierCurveTo(351.4607,702.5245800000001,340.83867,698.4774900000001,329.04605999999995,698.4774900000001);
ctx.bezierCurveTo(306.2184,698.4774900000001,287.71290999999997,713.6018600000001,287.71290999999997,732.2587100000001);
ctx.bezierCurveTo(287.71290999999997,745.33631,296.82316,756.6607,310.12323,762.2747300000001);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.save();
ctx.fillStyle = "rgba(255, 255, 255, 0.77647)";
ctx.strokeStyle = "rgba(0, 0, 0, 0.0)";
ctx.beginPath();
ctx.moveTo(470.75204,762.27473);
ctx.bezierCurveTo(463.5077,756.21629,459.04435,748.0337999999999,459.04435,739.01495);
ctx.bezierCurveTo(459.04435,720.35811,478.06908,705.23373,501.53727000000003,705.23373);
ctx.bezierCurveTo(508.55534000000006,705.23373,515.15769,706.60384,520.99107,708.9989300000001);
ctx.bezierCurveTo(513.2494,702.5245800000001,502.32933,698.4774900000001,490.20583000000005,698.4774900000001);
ctx.bezierCurveTo(466.73764000000006,698.4774900000001,447.7129100000001,713.6018600000001,447.7129100000001,732.2587100000001);
ctx.bezierCurveTo(447.7129100000001,745.33631,457.0787900000001,756.6607,470.7520400000001,762.2747300000001);
ctx.closePath();
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.restore();
ctx.restore();
};
*/