equal
deleted
inserted
replaced
28 * @run |
28 * @run |
29 * @fork |
29 * @fork |
30 */ |
30 */ |
31 |
31 |
32 TESTNAME = "kaleidoscope"; |
32 TESTNAME = "kaleidoscope"; |
33 WAIT = 4000; |
|
34 |
|
35 var Paint = Java.type("javafx.scene.paint.Paint"); |
|
36 var Canvas = Java.type("javafx.scene.canvas.Canvas"); |
|
37 var BorderPane = Java.type("javafx.scene.layout.BorderPane"); |
|
38 var StackPane = Java.type("javafx.scene.layout.StackPane"); |
|
39 var StrokeLineCap = Java.type("javafx.scene.shape.StrokeLineCap"); |
|
40 |
33 |
41 var WIDTH = 800; |
34 var WIDTH = 800; |
42 var HEIGHT = 600; |
35 var HEIGHT = 600; |
43 var canvas = new Canvas(WIDTH, HEIGHT); |
36 var canvas = new Canvas(WIDTH, HEIGHT); |
44 var context = canvas.graphicsContext2D; |
37 var context = canvas.graphicsContext2D; |
54 var c=new Array(6); |
47 var c=new Array(6); |
55 var d=new Array(6); |
48 var d=new Array(6); |
56 var r,e; |
49 var r,e; |
57 var fade; |
50 var fade; |
58 var prv_x,prv_y,prv_x2,prv_y2; |
51 var prv_x,prv_y,prv_x2,prv_y2; |
|
52 var isFrameRendered = false; |
59 |
53 |
60 function renderFrame() { |
54 function renderFrame() { |
61 a=0.2*angle; |
55 if (!isFrameRendered) { |
62 b=0.7*angle; |
56 a=0.2*angle; |
63 r=0; |
57 b=0.7*angle; |
64 fade=32; |
58 r=0; |
65 for(var i=0;i<6;i++) |
59 fade=32; |
66 { |
60 for(var i=0;i<6;i++) |
67 c[i]=1.0/(i+1)/2; |
61 { |
68 d[i]=1.0/(i+1)/2; |
62 c[i]=1.0/(i+1)/2; |
69 } |
63 d[i]=1.0/(i+1)/2; |
70 radius=Math.round((WIDTH+HEIGHT)/8); |
64 } |
71 e=radius*0.2; |
65 radius=Math.round((WIDTH+HEIGHT)/8); |
72 p_x=Math.round(WIDTH/2); |
66 e=radius*0.2; |
73 p_y=Math.round(HEIGHT/2); |
67 p_x=Math.round(WIDTH/2); |
74 x=(radius*c[0])*Math.cos(a*d[1])+(radius*c[2])*Math.sin(a*d[3])+(radius*c[4])*Math.sin(a*d[5]); |
68 p_y=Math.round(HEIGHT/2); |
75 y=(radius*c[5])*Math.sin(a*d[4])+(radius*c[3])*Math.cos(a*d[2])+(radius*c[1])*Math.cos(a*d[0]); |
69 x=(radius*c[0])*Math.cos(a*d[1])+(radius*c[2])*Math.sin(a*d[3])+(radius*c[4])*Math.sin(a*d[5]); |
76 for (i = 0; i < 800; i++) { |
70 y=(radius*c[5])*Math.sin(a*d[4])+(radius*c[3])*Math.cos(a*d[2])+(radius*c[1])*Math.cos(a*d[0]); |
77 anim(); |
71 isFrameRendered = true; |
78 } |
72 } |
|
73 anim(); |
79 } |
74 } |
80 |
75 |
81 function anim() { |
76 function anim() { |
82 var a1=Math.cos(a*2); |
77 var a1=Math.cos(a*2); |
83 var a2=Math.cos(a*4); |
78 var a2=Math.cos(a*4); |
152 context.closePath(); |
147 context.closePath(); |
153 } |
148 } |
154 |
149 |
155 var stack = new StackPane(); |
150 var stack = new StackPane(); |
156 var pane = new BorderPane(); |
151 var pane = new BorderPane(); |
157 |
|
158 pane.setCenter(canvas); |
152 pane.setCenter(canvas); |
159 stack.getChildren().add(pane); |
153 stack.getChildren().add(pane); |
160 $STAGE.scene = new Scene(stack); |
154 $STAGE.scene = new Scene(stack); |
161 renderFrame(); |
155 var frame = 0; |
162 checkImageAndExit(); |
156 var timer = new AnimationTimerExtend() { |
|
157 handle: function handle(now) { |
|
158 if (frame < 800) { |
|
159 renderFrame(); |
|
160 frame++; |
|
161 } else { |
|
162 checkImageAndExit(); |
|
163 timer.stop(); |
|
164 } |
|
165 } |
|
166 }; |
|
167 timer.start(); |