@@ -57,14 +57,15 @@ <h2>6. Okazz 220919a</h2>
57
57
< span class ="hljs-keyword "> var</ span > colors = @[< span class ="hljs-string "> "#f70640"</ span > , < span class ="hljs-string "> "#f78e2c"</ span > , < span class ="hljs-string "> "#fdd903"</ span > , < span class ="hljs-string "> "#cae509"</ span > , < span class ="hljs-string "> "#63be93"</ span > , < span class ="hljs-string "> "#81cfe5"</ span > ,
58
58
< span class ="hljs-string "> "#299dbf"</ span > , < span class ="hljs-string "> "#38187d"</ span > , < span class ="hljs-string "> "#a4459f"</ span > , < span class ="hljs-string "> "#f654a9"</ span > , < span class ="hljs-string "> "#2F0A30"</ span > ]
59
59
< span class ="hljs-keyword "> type</ span >
60
- < span class ="hljs-type "> Form</ span > = < span class ="hljs-keyword "> object</ span >
60
+ < span class ="hljs-type "> Form</ span > = < span class ="hljs-keyword "> ref </ span > < span class =" hljs-keyword " > object</ span >
61
61
x, y, x0, y0, r0, r, d0, d: < span class ="hljs-built_in "> float</ span >
62
62
a, t, r1, r2, r3: < span class ="hljs-built_in "> float</ span >
63
63
n: < span class ="hljs-built_in "> int</ span >
64
64
col: < span class ="hljs-built_in "> string</ span >
65
65
66
66
< span class ="hljs-keyword "> var</ span > forms: < span class ="hljs-built_in "> seq</ span > [< span class ="hljs-type "> Form</ span > ]
67
- < span class ="hljs-keyword "> proc</ span > initForm(x, y: < span class ="hljs-built_in "> float</ span > ): < span class ="hljs-type "> Form</ span > =
67
+ < span class ="hljs-keyword "> proc</ span > newForm(x, y: < span class ="hljs-built_in "> float</ span > ): < span class ="hljs-type "> Form</ span > =
68
+ < span class ="hljs-literal "> result</ span > = < span class ="hljs-keyword "> new</ span > < span class ="hljs-type "> Form</ span >
68
69
< span class ="hljs-literal "> result</ span > .x = x
69
70
< span class ="hljs-literal "> result</ span > .y = y
70
71
< span class ="hljs-literal "> result</ span > .x0 = x
@@ -92,7 +93,7 @@ <h2>6. Okazz 220919a</h2>
92
93
ellipse(form.r * cos(theta), form.r * sin(theta), form.d, form.d)
93
94
pop()
94
95
95
- < span class ="hljs-keyword "> proc</ span > move(form: < span class ="hljs-keyword " > var </ span > < span class =" hljs- type "> Form</ span > ) =
96
+ < span class ="hljs-keyword "> proc</ span > move(form: < span class ="hljs-type "> Form</ span > ) =
96
97
form.t += < span class ="hljs-number "> 1</ span >
97
98
form.a = < span class ="hljs-type "> TAU</ span > * sin(form.t * form.r1)
98
99
form.r = form.r0 * sin(form.t * form.r2)
@@ -114,15 +115,15 @@ <h2>6. Okazz 220919a</h2>
114
115
< span class ="hljs-keyword "> let</ span > y = j * w + w / < span class ="hljs-number "> 2</ span >
115
116
< span class ="hljs-keyword "> if</ span > ((i + j) < span class ="hljs-keyword "> mod</ span > < span class ="hljs-number "> 2</ span > == < span class ="hljs-number "> 0</ span > ):
116
117
< span class ="hljs-keyword "> for</ span > k < span class ="hljs-keyword "> in</ span > < span class ="hljs-number "> 0</ span > ..< < span class ="hljs-number "> 5</ span > :
117
- forms.add(initForm (x, y))
118
+ forms.add(newForm (x, y))
118
119
background(< span class ="hljs-number "> 0</ span > )
119
120
120
121
< span class ="hljs-keyword "> proc</ span > draw() {.exportc.} =
121
122
translate(width / < span class ="hljs-number "> 2</ span > , height / < span class ="hljs-number "> 2</ span > )
122
123
scale(< span class ="hljs-number "> 1.1</ span > )
123
124
translate(-width / < span class ="hljs-number "> 2</ span > , -height / < span class ="hljs-number "> 2</ span > )
124
125
background(< span class ="hljs-number "> 255</ span > )
125
- < span class ="hljs-keyword "> for</ span > f < span class ="hljs-keyword "> in</ span > forms.mitems :
126
+ < span class ="hljs-keyword "> for</ span > f < span class ="hljs-keyword "> in</ span > forms:
126
127
f.show()
127
128
f.move()
128
129
</ code > </ pre >
@@ -313,7 +314,7 @@ <h2>6. Okazz 220919a</h2>
313
314
314
315
var objectID_620757154 = [ 0 ] ;
315
316
var colors_452984861 = [ [ makeNimstrLit ( "#f70640" ) , makeNimstrLit ( "#f78e2c" ) , makeNimstrLit ( "#fdd903" ) , makeNimstrLit ( "#cae509" ) , makeNimstrLit ( "#63be93" ) , makeNimstrLit ( "#81cfe5" ) , makeNimstrLit ( "#299dbf" ) , makeNimstrLit ( "#38187d" ) , makeNimstrLit ( "#a4459f" ) , makeNimstrLit ( "#f654a9" ) , makeNimstrLit ( "#2F0A30" ) ] ] ;
316
- var forms_452984878 = [ [ ] ] ;
317
+ var forms_452984879 = [ [ ] ] ;
317
318
318
319
function toFloat_452984854 ( n_452984855 ) {
319
320
var result_452984856 = 0.0 ;
@@ -324,6 +325,20 @@ <h2>6. Okazz 220919a</h2>
324
325
325
326
}
326
327
328
+ function new_452984902 ( ) {
329
+ var result_452984905 = null ;
330
+
331
+ BeforeRet: do {
332
+ var r_452984907 = null ;
333
+ r_452984907 = ( { x : 0.0 , y : 0.0 , x0 : 0.0 , y0 : 0.0 , r0 : 0.0 , r : 0.0 , d0 : 0.0 , d : 0.0 , a : 0.0 , t : 0.0 , r1 : 0.0 , r2 : 0.0 , r3 : 0.0 , n : 0 , col : [ ] } ) ;
334
+ result_452984905 = r_452984907 ;
335
+ break BeforeRet;
336
+ } while ( false ) ;
337
+
338
+ return result_452984905 ;
339
+
340
+ }
341
+
327
342
function isFatPointer_33557132 ( ti_33557133 ) {
328
343
var result_33557134 = false ;
329
344
@@ -362,69 +377,70 @@ <h2>6. Okazz 220919a</h2>
362
377
363
378
}
364
379
365
- function initForm_452984897 ( x_452984898 , y_452984899 ) {
366
- var result_452984900 = ( { x : 0.0 , y : 0.0 , x0 : 0.0 , y0 : 0.0 , r0 : 0.0 , r : 0.0 , d0 : 0.0 , d : 0.0 , a : 0.0 , t : 0.0 , r1 : 0.0 , r2 : 0.0 , r3 : 0.0 , n : 0 , col : [ ] } ) ;
367
-
368
- result_452984900 . x = x_452984898 ;
369
- result_452984900 . y = y_452984899 ;
370
- result_452984900 . x0 = x_452984898 ;
371
- result_452984900 . y0 = y_452984899 ;
372
- result_452984900 . r0 = random ( 10.0 , 25.0 ) ;
373
- result_452984900 . r = result_452984900 . r0 ;
374
- result_452984900 . d0 = ( ( random ( 15 ) * random ( ) ) + 5.0 ) ;
375
- result_452984900 . d = result_452984900 . d0 ;
376
- result_452984900 . n = ( ( random ( 3.0 , 13.0 ) ) | 0 ) ;
377
- result_452984900 . a = random ( 100 ) ;
378
- result_452984900 . t = random ( 10000 ) ;
379
- result_452984900 . r1 = random ( 0.01 ) ;
380
- result_452984900 . r2 = random ( 0.01 ) ;
381
- result_452984900 . r3 = random ( 0.01 ) ;
382
- result_452984900 . col = nimCopy ( null , random ( colors_452984861 [ 0 ] ) , NTI33554439 ) ;
383
-
384
- return result_452984900 ;
380
+ function newForm_452984898 ( x_452984899 , y_452984900 ) {
381
+ var result_452984901 = null ;
382
+
383
+ result_452984901 = new_452984902 ( ) ;
384
+ result_452984901 . x = x_452984899 ;
385
+ result_452984901 . y = y_452984900 ;
386
+ result_452984901 . x0 = x_452984899 ;
387
+ result_452984901 . y0 = y_452984900 ;
388
+ result_452984901 . r0 = random ( 10.0 , 25.0 ) ;
389
+ result_452984901 . r = result_452984901 . r0 ;
390
+ result_452984901 . d0 = ( ( random ( 15 ) * random ( ) ) + 5.0 ) ;
391
+ result_452984901 . d = result_452984901 . d0 ;
392
+ result_452984901 . n = ( ( random ( 3.0 , 13.0 ) ) | 0 ) ;
393
+ result_452984901 . a = random ( 100 ) ;
394
+ result_452984901 . t = random ( 10000 ) ;
395
+ result_452984901 . r1 = random ( 0.01 ) ;
396
+ result_452984901 . r2 = random ( 0.01 ) ;
397
+ result_452984901 . r3 = random ( 0.01 ) ;
398
+ result_452984901 . col = nimCopy ( null , random ( colors_452984861 [ 0 ] ) , NTI33554439 ) ;
399
+
400
+ return result_452984901 ;
385
401
386
402
}
387
403
388
404
function setup ( ) {
389
405
createCanvas ( 900 , 900 ) ;
390
- var c_452984985 = 18 ;
391
- var w_452984986 = ( width / toFloat_452984854 ( c_452984985 ) ) ;
406
+ var c_452985013 = 18 ;
407
+ var w_452985014 = ( width / toFloat_452984854 ( c_452985013 ) ) ;
392
408
Label1: do {
393
- var i_452984991 = 0 ;
394
- var i_452985027 = 0 ;
409
+ var i_452985019 = 0 ;
410
+ var i_452985046 = 0 ;
395
411
Label2: do {
396
412
Label3: while ( true ) {
397
- if ( ! ( i_452985027 < c_452984985 ) ) break Label3;
398
- i_452984991 = i_452985027 ;
413
+ if ( ! ( i_452985046 < c_452985013 ) ) break Label3;
414
+ i_452985019 = i_452985046 ;
399
415
Label4: do {
400
- var j_452984996 = 0 ;
401
- var i_452985025 = 0 ;
416
+ var j_452985024 = 0 ;
417
+ var i_452985044 = 0 ;
402
418
Label5: do {
403
419
Label6: while ( true ) {
404
- if ( ! ( i_452985025 < c_452984985 ) ) break Label6;
405
- j_452984996 = i_452985025 ;
406
- var x_452984997 = ( ( toFloat_452984854 ( i_452984991 ) * w_452984986 ) + ( w_452984986 / 2.0 ) ) ;
407
- var y_452984998 = ( ( toFloat_452984854 ( j_452984996 ) * w_452984986 ) + ( w_452984986 / 2.0 ) ) ;
408
- if ( ( Math . trunc ( ( i_452984991 + j_452984996 ) % 2 ) == 0 ) ) {
420
+ if ( ! ( i_452985044 < c_452985013 ) ) break Label6;
421
+ j_452985024 = i_452985044 ;
422
+ var x_452985025 = ( ( toFloat_452984854 ( i_452985019 ) * w_452985014 ) + ( w_452985014 / 2.0 ) ) ;
423
+ var y_452985026 = ( ( toFloat_452984854 ( j_452985024 ) * w_452985014 ) + ( w_452985014 / 2.0 ) ) ;
424
+ if ( ( Math . trunc ( ( i_452985019 + j_452985024 ) % 2 ) == 0 ) ) {
409
425
Label7: do {
410
- var k_452985003 = 0 ;
411
- var i_452985023 = 0 ;
426
+ var k_452985031 = 0 ;
427
+ var i_452985042 = 0 ;
412
428
Label8: do {
413
429
Label9: while ( true ) {
414
- if ( ! ( i_452985023 < 5 ) ) break Label9;
415
- k_452985003 = i_452985023 ;
416
- forms_452984878 [ 0 ] . push ( initForm_452984897 ( x_452984997 , y_452984998 ) ) ; ;
417
- i_452985023 += 1 ;
430
+ if ( ! ( i_452985042 < 5 ) ) break Label9;
431
+ k_452985031 = i_452985042 ;
432
+ forms_452984879 [ 0 ] . push ( newForm_452984898 ( x_452985025 , y_452985026 ) ) ; ;
433
+ i_452985042 += 1 ;
418
434
}
419
435
} while ( false ) ;
420
436
} while ( false ) ;
421
437
}
422
438
423
- i_452985025 += 1 ;
439
+ i_452985044 += 1 ;
424
440
}
425
441
} while ( false ) ;
426
442
} while ( false ) ;
427
- i_452985027 += 1 ;
443
+ i_452985046 += 1 ;
428
444
}
429
445
} while ( false ) ;
430
446
} while ( false ) ;
@@ -441,22 +457,22 @@ <h2>6. Okazz 220919a</h2>
441
457
442
458
}
443
459
444
- function show_452984922 ( form_452984923 ) {
460
+ function show_452984950 ( form_452984951 ) {
445
461
noStroke ( ) ;
446
- fill ( toJSStr ( form_452984923 . col ) ) ;
462
+ fill ( toJSStr ( form_452984951 . col ) ) ;
447
463
push ( ) ;
448
- translate ( form_452984923 . x , form_452984923 . y ) ;
449
- rotate ( form_452984923 . a ) ;
464
+ translate ( form_452984951 . x , form_452984951 . y ) ;
465
+ rotate ( form_452984951 . a ) ;
450
466
Label1: do {
451
- var i_452984935 = 0 ;
452
- var i_452985088 = 0 ;
467
+ var i_452984963 = 0 ;
468
+ var i_452985098 = 0 ;
453
469
Label2: do {
454
470
Label3: while ( true ) {
455
- if ( ! ( i_452985088 < form_452984923 . n ) ) break Label3;
456
- i_452984935 = i_452985088 ;
457
- var theta_452984944 = map ( i_452984935 , 0.0 , toFloat_452984854 ( form_452984923 . n ) , 0.0 , TAU ) ;
458
- ellipse ( ( form_452984923 . r * cos ( theta_452984944 ) ) , ( form_452984923 . r * sin ( theta_452984944 ) ) , form_452984923 . d , form_452984923 . d ) ;
459
- i_452985088 += 1 ;
471
+ if ( ! ( i_452985098 < form_452984951 . n ) ) break Label3;
472
+ i_452984963 = i_452985098 ;
473
+ var theta_452984972 = map ( i_452984963 , 0.0 , toFloat_452984854 ( form_452984951 . n ) , 0.0 , TAU ) ;
474
+ ellipse ( ( form_452984951 . r * cos ( theta_452984972 ) ) , ( form_452984951 . r * sin ( theta_452984972 ) ) , form_452984951 . d , form_452984951 . d ) ;
475
+ i_452985098 += 1 ;
460
476
}
461
477
} while ( false ) ;
462
478
} while ( false ) ;
@@ -471,25 +487,25 @@ <h2>6. Okazz 220919a</h2>
471
487
472
488
}
473
489
474
- function HEX2DHEX3D_452984976 ( x_452984978 , x_452984978_Idx , y_452984979 ) {
475
- x_452984978 [ x_452984978_Idx ] = ( x_452984978 [ x_452984978_Idx ] - y_452984979 ) ;
490
+ function HEX2DHEX3D_452985004 ( x_452985006 , x_452985006_Idx , y_452985007 ) {
491
+ x_452985006 [ x_452985006_Idx ] = ( x_452985006 [ x_452985006_Idx ] - y_452985007 ) ;
476
492
477
493
478
494
}
479
495
480
- function move_452984957 ( form_452984958 ) {
481
- HEX2BHEX3D_855640050 ( form_452984958 , "t" , 1.0 ) ;
482
- form_452984958 . a = ( TAU * sin ( ( form_452984958 . t * form_452984958 . r1 ) ) ) ;
483
- form_452984958 . r = ( form_452984958 . r0 * sin ( ( form_452984958 . t * form_452984958 . r2 ) ) ) ;
484
- form_452984958 . d = ( form_452984958 . d0 * sin ( ( form_452984958 . t * form_452984958 . r3 ) ) ) ;
485
- HEX2BHEX3D_855640050 ( form_452984958 , "x" , 0.5 ) ;
486
- HEX2DHEX3D_452984976 ( form_452984958 , "y" , 0.5 ) ;
487
- if ( ( width < form_452984958 . x ) ) {
488
- form_452984958 . x = 0.0 ;
496
+ function move_452984985 ( form_452984986 ) {
497
+ HEX2BHEX3D_855640050 ( form_452984986 , "t" , 1.0 ) ;
498
+ form_452984986 . a = ( TAU * sin ( ( form_452984986 . t * form_452984986 . r1 ) ) ) ;
499
+ form_452984986 . r = ( form_452984986 . r0 * sin ( ( form_452984986 . t * form_452984986 . r2 ) ) ) ;
500
+ form_452984986 . d = ( form_452984986 . d0 * sin ( ( form_452984986 . t * form_452984986 . r3 ) ) ) ;
501
+ HEX2BHEX3D_855640050 ( form_452984986 , "x" , 0.5 ) ;
502
+ HEX2DHEX3D_452985004 ( form_452984986 , "y" , 0.5 ) ;
503
+ if ( ( width < form_452984986 . x ) ) {
504
+ form_452984986 . x = 0.0 ;
489
505
}
490
506
491
- if ( ( form_452984958 . y < 0.0 ) ) {
492
- form_452984958 . y = height ;
507
+ if ( ( form_452984986 . y < 0.0 ) ) {
508
+ form_452984986 . y = height ;
493
509
}
494
510
495
511
@@ -502,16 +518,17 @@ <h2>6. Okazz 220919a</h2>
502
518
translate ( ( - ( width ) / 2.0 ) , ( - ( height ) / 2.0 ) ) ;
503
519
background ( 255 ) ;
504
520
Label1: do {
505
- var f_452985063 = null ;
506
- var i_452985084 = 0 ;
507
- var L_452985085 = ( forms_452984878 [ 0 ] ) . length ;
521
+ var f_452985082 = null ;
522
+ var f_452985082_Idx = 0 ;
523
+ var i_452985094 = 0 ;
524
+ var L_452985095 = ( forms_452984879 [ 0 ] ) . length ;
508
525
Label2: do {
509
526
Label3: while ( true ) {
510
- if ( ! ( i_452985084 < L_452985085 ) ) break Label3;
511
- f_452985063 = forms_452984878 [ 0 ] [ i_452985084 ] ;
512
- show_452984922 ( f_452985063 ) ;
513
- move_452984957 ( f_452985063 ) ;
514
- i_452985084 += 1 ;
527
+ if ( ! ( i_452985094 < L_452985095 ) ) break Label3;
528
+ f_452985082 = forms_452984879 [ 0 ] ; f_452985082_Idx = i_452985094 ;
529
+ show_452984950 ( f_452985082 [ f_452985082_Idx ] ) ;
530
+ move_452984985 ( f_452985082 [ f_452985082_Idx ] ) ;
531
+ i_452985094 += 1 ;
515
532
}
516
533
} while ( false ) ;
517
534
} while ( false ) ;
@@ -634,15 +651,16 @@ <h2>6. Okazz 220919a</h2>
634
651
< span class ="hljs-keyword "> var</ span > colors = @[< span class ="hljs-string "> "#f70640"</ span > , < span class ="hljs-string "> "#f78e2c"</ span > , < span class ="hljs-string "> "#fdd903"</ span > , < span class ="hljs-string "> "#cae509"</ span > , < span class ="hljs-string "> "#63be93"</ span > , < span class ="hljs-string "> "#81cfe5"</ span > , < span class ="hljs-string "> "#299dbf"</ span > , < span class ="hljs-string "> "#38187d"</ span > , < span class ="hljs-string "> "#a4459f"</ span > , < span class ="hljs-string "> "#f654a9"</ span > , < span class ="hljs-string "> "#2F0A30"</ span > ];
635
652
636
653
< span class ="hljs-keyword "> type</ span >
637
- < span class ="hljs-type "> Form</ span > = < span class ="hljs-keyword "> object</ span >
654
+ < span class ="hljs-type "> Form</ span > = < span class ="hljs-keyword "> ref </ span > < span class =" hljs-keyword " > object</ span >
638
655
x, y, x0, y0, r0, r, d0, d: < span class ="hljs-built_in "> float</ span >
639
656
a, t, r1, r2, r3: < span class ="hljs-built_in "> float</ span >
640
657
n: < span class ="hljs-built_in "> int</ span >
641
658
col: < span class ="hljs-built_in "> string</ span >
642
659
643
660
< span class ="hljs-keyword "> var</ span > forms: < span class ="hljs-built_in "> seq</ span > [< span class ="hljs-type "> Form</ span > ]
644
661
645
- < span class ="hljs-keyword "> proc</ span > initForm(x, y: < span class ="hljs-built_in "> float</ span > ): < span class ="hljs-type "> Form</ span > =
662
+ < span class ="hljs-keyword "> proc</ span > newForm(x, y: < span class ="hljs-built_in "> float</ span > ): < span class ="hljs-type "> Form</ span > =
663
+ < span class ="hljs-literal "> result</ span > = < span class ="hljs-keyword "> new</ span > < span class ="hljs-type "> Form</ span >
646
664
< span class ="hljs-literal "> result</ span > .x = x
647
665
< span class ="hljs-literal "> result</ span > .y = y
648
666
< span class ="hljs-literal "> result</ span > .x0 = x
@@ -670,7 +688,7 @@ <h2>6. Okazz 220919a</h2>
670
688
ellipse(form.r * cos(theta), form.r * sin(theta), form.d, form.d)
671
689
pop()
672
690
673
- < span class ="hljs-keyword "> proc</ span > move(form: < span class ="hljs-keyword " > var </ span > < span class =" hljs- type "> Form</ span > ) =
691
+ < span class ="hljs-keyword "> proc</ span > move(form: < span class ="hljs-type "> Form</ span > ) =
674
692
form.t += < span class ="hljs-number "> 1</ span >
675
693
form.a = < span class ="hljs-type "> TAU</ span > * sin(form.t * form.r1);
676
694
form.r = form.r0 * sin(form.t * form.r2);
@@ -693,7 +711,7 @@ <h2>6. Okazz 220919a</h2>
693
711
< span class ="hljs-keyword "> let</ span > y = j * w + w / < span class ="hljs-number "> 2</ span > ;
694
712
< span class ="hljs-keyword "> if</ span > ((i + j) < span class ="hljs-keyword "> mod</ span > < span class ="hljs-number "> 2</ span > == < span class ="hljs-number "> 0</ span > ):
695
713
< span class ="hljs-keyword "> for</ span > k < span class ="hljs-keyword "> in</ span > < span class ="hljs-number "> 0</ span > ..< < span class ="hljs-number "> 5</ span > :
696
- forms.add(initForm (x, y))
714
+ forms.add(newForm (x, y))
697
715
background(< span class ="hljs-number "> 0</ span > )
698
716
699
717
< span class ="hljs-keyword "> proc</ span > draw {.exportc.} =
@@ -702,7 +720,7 @@ <h2>6. Okazz 220919a</h2>
702
720
scale(< span class ="hljs-number "> 1.1</ span > )
703
721
translate(-width / < span class ="hljs-number "> 2</ span > , -height / < span class ="hljs-number "> 2</ span > )
704
722
background(< span class ="hljs-number "> 255</ span > )
705
- < span class ="hljs-keyword "> for</ span > f < span class ="hljs-keyword "> in</ span > forms.mitems :
723
+ < span class ="hljs-keyword "> for</ span > f < span class ="hljs-keyword "> in</ span > forms:
706
724
f.show()
707
725
f.move()
708
726
0 commit comments