OSDN Git Service

e319002a31f6a4322f42fe7620720101b11ae4e6
[psychlops/silverlight.git] / test4 / Store.cs
1 \r
2 /*\r
3 using Psychlops;\r
4 \r
5 namespace PsychlopsSilverlight4test\r
6 {\r
7 \r
8         public class PsychlopsMain\r
9         {\r
10                 void RectLuminance()\r
11                 {\r
12                         Canvas display = new Canvas(Canvas.window);\r
13                         Psychlops.Solver.BinomialLikelihood.showWindow(Math.cumulativeNormalDistibution);\r
14                         Letters le = new Letters("Reload to restart");\r
15                         le.fill = Color.black;\r
16                         le.align = Letters.HorizontalAlign.center;\r
17 \r
18                         while (!Keyboard.esc.pushed())\r
19                         {\r
20                                 Display.clear(Color.white);\r
21                                 le.centering().shift(-200,-10).draw();\r
22                                 Display.flip();\r
23                         }\r
24 \r
25                 }\r
26 \r
27 \r
28                 public void psychlops_main()\r
29                 {\r
30                         RectLuminance();\r
31                 }\r
32 \r
33 \r
34         }\r
35 \r
36 }\r
37 \r
38 */\r
39 \r
40 \r
41 \r
42 \r
43 \r
44 \r
45 \r
46 \r
47 \r
48 /*\r
49  using Psychlops;\r
50 \r
51 namespace PsychlopsSilverlight4test\r
52 {\r
53 \r
54         public class PsychlopsMain\r
55         {\r
56 \r
57                 Psychlops.Canvas cnvs;\r
58                 int i;\r
59                 double x, y, z, t, p, temp, xx, yy;\r
60 \r
61                 //Set Target Initial Value\r
62                 double TargetEcce = 100.0, TargetSize = 5.0, TargetNumber = 5, Rotate = 0.0;\r
63 \r
64                 //Set Background Initial Value\r
65                 double Axis = 0.0, BGRadii = 150, BGSize = 5.0;\r
66                 Psychlops.Widgets.Slider thetaSpeed, DotNumber;\r
67                 Image img;\r
68 \r
69 \r
70 \r
71                 public void psychlops_main()\r
72                 {\r
73                         cnvs = new Canvas(500, 500);\r
74 \r
75                         Psychlops.Solver.BinomialLikelihood.showWindow(Math.cumulativeNormalDistibution);\r
76 \r
77 \r
78                         img = new Image("Resources/logo.png");\r
79 \r
80                         Interval rng = new Interval();\r
81                         thetaSpeed = new Psychlops.Widgets.Slider("Label", -10 <= rng <= 10, 3.0);\r
82                         DotNumber  = new Psychlops.Widgets.Slider("DotNum",   0 <= rng <= 100, 50.0);\r
83 \r
84                         //Declare background dots and target\r
85                         Rectangle[] BGDot = new Rectangle[2048];\r
86                         for(int i=0; i<2048; i++){\r
87                                 BGDot[i]=new Rectangle();\r
88                         }\r
89                         Rectangle[] Target= new Rectangle[10];\r
90                         for(int i=0; i<10; i++){\r
91                                 Target[i]=new Rectangle();\r
92                         }\r
93 \r
94 \r
95                         //Declare Matrix to keep back ground dots' coordinate value\r
96                         double[] DotX=new double[2048];\r
97                         double[] DotY = new double[2048];\r
98 \r
99 \r
100                         //Set Independent variables to manipulate\r
101 \r
102 \r
103                         //Initialize positions of background dots\r
104                         for(int i=0; i<2048; i++){\r
105                                 t=2.0*Math.PI*Math.random(1.0);\r
106                                 p=2.0*Math.PI*Math.random(1.0);\r
107                                 DotX[i]=t;\r
108                                 DotY[i]=p;\r
109 \r
110                                 x=BGRadii*Math.cos(t)*Math.cos(p);\r
111                                 y=BGRadii*Math.sin(t)*Math.cos(p);\r
112                                 BGDot[i].set(BGSize, BGSize);\r
113                                 BGDot[i].centering().shift(x,y);\r
114                         }\r
115 \r
116                         //Initialize positions of targets\r
117                         for(int i=0; i<10; i++)Target[i].set(TargetSize, TargetSize);\r
118 \r
119                         double COS, SIN;\r
120                         //DotNumber = 200;\r
121                         //Main stimulus loop\r
122                         while(true){\r
123                                 //Clear the main window\r
124                                 cnvs.clear();\r
125 \r
126 \r
127                                 temp=Axis/360*2*Math.PI;\r
128                                 COS=Math.cos(temp);\r
129                                 SIN=Math.sin(temp);\r
130 \r
131                                 //Calculate positions of background dots and set them\r
132                                 for(int i=0; i<DotNumber; i++){\r
133                                         //Calculate in polar coordinate\r
134                                         t=DotX[i]+2.0*Math.PI*thetaSpeed/360.0;\r
135                                         p=DotY[i];\r
136 \r
137                                         //Save current position\r
138                                         DotX[i]=t;\r
139 \r
140                                         //Convert to Decartes coordinate\r
141                                         x=BGRadii*Math.cos(t)*Math.cos(p);\r
142                                         y=BGRadii*Math.sin(t)*Math.cos(p);\r
143                                         z=BGRadii*Math.sin(p);\r
144                                         xx=x;\r
145                                         yy=SIN*y+COS*z;\r
146 \r
147                                         //Set Dotsize and Draw them\r
148                                         BGDot[i].set(BGSize, BGSize);\r
149                                         BGDot[i].centering().shift(xx,yy);\r
150                                         BGDot[i].draw( Color.blue );\r
151                                 }\r
152 \r
153                                 //Calculate positions of targets and set them\r
154                                 temp=Rotate*2*Math.PI/360.0;\r
155                                 for (int i = 0; i < 5; i++)\r
156                                 {\r
157                                         t = 2.0 * Math.PI/TargetNumber;\r
158                                         x = TargetEcce*Math.cos(i*t+temp);\r
159                                         y = TargetEcce*Math.sin(i*t+temp);\r
160                                         Target[i].centering().shift(x,y);\r
161                                         Target[i].fill = Color.yellow;\r
162                                         Target[i].draw();\r
163                                 }\r
164 \r
165                                 img.centering(Mouse.position).draw();\r
166 \r
167                                 cnvs.var(Mouse.position.x, 100, 100);\r
168                                 cnvs.var(Mouse.position.y, 100, 140);\r
169 \r
170                                 //Reflect drawing at the next frame;\r
171                                 cnvs.flip();\r
172                         }\r
173                 }\r
174         }\r
175 \r
176 }\r
177 */\r
178 \r
179 \r
180 /*using Psychlops;\r
181 \r
182 namespace PsychlopsSilverlight4test\r
183 {\r
184         public class PsychlopsMain\r
185         {\r
186                 public void psychlops_main()\r
187                 {\r
188                         var figure_type = Psychlops.Widgets.Browser.Element.byID("FIGURE");\r
189                         var size_x = Psychlops.Widgets.Browser.Element.byID("SIZE_X");\r
190                         var size_y = Psychlops.Widgets.Browser.Element.byID("SIZE_Y");\r
191                         var shift_x = Psychlops.Widgets.Browser.Element.byID("SHIFT_X");\r
192                         var shift_y = Psychlops.Widgets.Browser.Element.byID("SHIFT_Y");\r
193                         var color_r = Psychlops.Widgets.Browser.Element.byID("COLOR_R");\r
194                         var color_g = Psychlops.Widgets.Browser.Element.byID("COLOR_G");\r
195                         var color_b = Psychlops.Widgets.Browser.Element.byID("COLOR_B");\r
196 \r
197                         Canvas window = new Canvas(300, 300);\r
198 \r
199                         var figure_r = new Rectangle();\r
200                         var figure_e = new Ellipse();\r
201                         Shape figure = figure_r;\r
202                         \r
203                         while (!Keyboard.esc.pushed())\r
204                         {\r
205                                 if (System.String.Compare(figure_type, "Rectangle") == 0)\r
206                                 {\r
207                                         figure_r.set(size_x, size_y);\r
208                                         figure = figure_r;\r
209                                 }\r
210                                 else\r
211                                 {\r
212                                         figure_e.set(size_x, size_y);\r
213                                         figure = figure_e;\r
214                                 }\r
215                                 figure.fill = new Color(color_r, color_g, color_b);\r
216 \r
217                                 window.clear(Color.black);\r
218                                 figure.centering().shift(shift_x, shift_y).draw();\r
219                                 window.flip();\r
220                         }\r
221                 }\r
222         }\r
223 \r
224 }\r
225 \r
226 \r
227 \r
228 \r
229 /*\r
230 using Psychlops;\r
231 \r
232 namespace Psychlops\r
233 {\r
234 \r
235         public class RandomDots\r
236         {\r
237                 Rectangle dot;\r
238                 public Point[] cood;\r
239                 public RandomDots()\r
240                 {\r
241                         cood = new Point[250];\r
242                         dot = new Rectangle(5, 5);\r
243                 }\r
244                 public void draw()\r
245                 {\r
246                         dot.fill = Color.white;\r
247                         foreach (Point p in cood)\r
248                         {\r
249                                 dot.centering(p).draw();\r
250                         }\r
251                 }\r
252         }\r
253 \r
254 }\r
255 \r
256 \r
257 \r
258 namespace PsychlopsSilverlight4test\r
259 {\r
260 \r
261         public class PsychlopsMain\r
262         {\r
263                 Canvas cnvs;\r
264                 Image img;\r
265                 Ellipse fixation;\r
266                 Shape shape;\r
267                 Color col;\r
268                 int isize = 100;\r
269                 double tfreq = 1;\r
270                 int frames;\r
271                 RandomDots dots;\r
272                 Group g;\r
273 \r
274                 public void psychlops_main()\r
275                 {\r
276                         cnvs = new Canvas(500, 500);\r
277                         g = new Group();\r
278                         img = new Image(isize * 2, isize * 2);\r
279                         Figures.drawGrating(ref img, 200, 200, 20, 1, 2, frames * 2.0 * Math.PI / tfreq / 60);\r
280                         g.append(img);\r
281                         g.rotation = 50;\r
282                         fixation = new Ellipse(10, 10);\r
283                         fixation.fill = Color.red;\r
284                         //var poly = new Rectangle(100, 100);\r
285                         var poly = new Letters("日本語");\r
286                         //var poly = new Polygon(); poly.append(0, 100); poly.append(-100, 0); poly.append(0, -100); poly.append(100, 0);\r
287                         //var poly = new Ellipse(100, 100);\r
288                         //var poly = new Line(0,0,100, 0);\r
289                         poly.fill = Color.red;\r
290                         poly.stroke = new Stroke { color = Color.yellow, thick = 1 };\r
291                         shape = poly;\r
292 \r
293                         var rng = new Interval();\r
294                         var slider = new Psychlops.Widgets.Slider("tesrt", -100 <= rng <= 100);\r
295 \r
296                         dots = new RandomDots();\r
297 \r
298 \r
299                         while (true)\r
300                         {\r
301                                 frames++;\r
302 \r
303 \r
304                                 cnvs.clear(new Color(Mouse.left.pressed() ? 0.75 : 0.5));\r
305                                 col.set(Math.random(1.0));\r
306 \r
307                                 /*if (frames % 2 == 0)\r
308                                 {\r
309                                         fixation.centering().shift(100, 100);\r
310                                         fixation.draw(new Stroke(Color.blue, 3));\r
311                                 }* /\r
312 \r
313                                 fixation.centering().shift(slider, 0);\r
314                                 fixation.draw(Color.red);\r
315 \r
316                                 //Figures.drawGabor(ref img, 20, 100, 1, 0, frames * 2.0 * Math.PI / tfreq / 60);\r
317                                 //Figures.drawGaussian(ref img, 20, 1);\r
318                                 //Figures.drawGrating(ref img, 200, 200, 20, 1, 2, frames * 2.0 * Math.PI / tfreq / 60);\r
319                                 //img.centering(Mouse.position);\r
320                                 //img.draw();\r
321                                 g.centering(Mouse.position).draw();\r
322                                 g.rotation += 1;\r
323 \r
324                                 shape.centering(Mouse.position).shift(100, 0);\r
325                                 shape.draw();\r
326                                 if (Keyboard.spc.pressed()) cnvs.var(Mouse.x, 100, 100);\r
327 \r
328                                 cnvs.var(frames, 0, 20);\r
329                                 //slider.value = frames / 100.0;\r
330 \r
331                                 /*if (frames % 2 != 0)\r
332                                 {\r
333                                         fixation.shift(100, 100);\r
334                                         fixation.draw(new Stroke(Color.green, 3));\r
335                                 }* /\r
336 \r
337                                 for (int i = 0; i < dots.cood.Length; i++)\r
338                                 {\r
339                                         dots.cood[i].set(Math.random(500), Math.random(500));\r
340                                 }\r
341                                 cnvs.var((double)slider, 200, 200);\r
342                                 dots.draw();\r
343 \r
344                                 cnvs.flip();\r
345                         }\r
346                 }\r
347         }\r
348 }\r
349 \r
350 **/\r
351 \r
352 \r
353 /*\r
354 \r
355 using Psychlops;\r
356 namespace PsychlopsSilverlight4test\r
357 {\r
358 \r
359         public class PsychlopsMain\r
360         {\r
361                 Canvas cnvs;\r
362                 Rectangle[] rect;\r
363                 int n;\r
364 \r
365                 public void psychlops_main()\r
366                 {\r
367                         n = 1;\r
368                         cnvs = new Canvas(500, 500);\r
369                         rect = new Rectangle[n];\r
370                         for (int i = 0; i < n; i++)\r
371                         {\r
372                                 rect[i] = new Rectangle(10, 10);\r
373                                 rect[i].fill = Color.red;\r
374                         }\r
375                         Interval rng = new Interval();\r
376                         var slider = new Psychlops.Widgets.Slider("Label", -100 <= rng <= 100);\r
377 \r
378                         while (true)\r
379                         {\r
380                                 cnvs.clear();\r
381                                 for (int i = 0; i < n; i++)\r
382                                 {\r
383                                         rect[i].centering().shift(slider * i*3, i*3).draw();\r
384                                 }\r
385                                 cnvs.flip();\r
386                         }\r
387                 }\r
388         }\r
389 }\r
390 \r
391 */\r
392 \r
393 /*\r
394 using Psychlops;\r
395 \r
396 namespace PsychlopsSilverlight4test\r
397 {\r
398         public class PsychlopsMain\r
399         {\r
400                 public void psychlops_main()\r
401                 {\r
402                         Canvas window = new Canvas(300, 300);\r
403 \r
404                         var figure_r = new Rectangle();\r
405                         var figure_e = new Ellipse();\r
406                         figure_r.set(100,100).centering().shift(0, 0);\r
407                         figure_e.set(100,100).centering().shift(0, 0);\r
408 \r
409                         while (!Keyboard.esc.pushed())\r
410                         {\r
411                                 figure_r.fill = new Color(0, 0, 1);\r
412                                 figure_r.centering(new Point(100,100)).draw();\r
413                                 figure_e.fill = new Color(1, 0, 0);\r
414                                 figure_e.centering(new Point(100, 100)).draw();\r
415                                 window.flip();\r
416                         }\r
417                 }\r
418         }\r
419 \r
420 }\r
421 \r
422 /*\r
423 \r
424 \r
425 \r
426 using Psychlops;\r
427 \r
428 namespace PsychlopsSilverlight4test\r
429 {\r
430         public class PsychlopsMain\r
431         {\r
432                 public void psychlops_main()\r
433                 {\r
434                         var figure_type = Psychlops.Widgets.Browser.Element.byID("FIGURE");\r
435                         var size_x = Psychlops.Widgets.Browser.Element.byID("SIZE_X");\r
436                         var size_y = Psychlops.Widgets.Browser.Element.byID("SIZE_Y");\r
437                         var color_r = Psychlops.Widgets.Browser.Element.byID("COLOR_R");\r
438                         var color_g = Psychlops.Widgets.Browser.Element.byID("COLOR_G");\r
439                         var color_b = Psychlops.Widgets.Browser.Element.byID("COLOR_B");\r
440 \r
441                         Canvas window = new Canvas(300, 300);\r
442 \r
443                         var figure_r = new Rectangle();\r
444                         var figure_e = new Ellipse();\r
445                         figure_r.centering().shift(0, 0);\r
446                         figure_e.centering().shift(0, 0);\r
447 \r
448                         int frame = 0;\r
449                         int direction = 1, motion_dir = 1;\r
450 \r
451                         while (!Keyboard.esc.pushed())\r
452                         {\r
453                                 window.clear();\r
454 \r
455                                 if (frame % 30 == 0)\r
456                                 {\r
457                                         direction = direction * -1;\r
458 \r
459                                 }\r
460 \r
461                                 if (frame % 90 == 0)\r
462                                 {\r
463                                         motion_dir *= -1;\r
464                                 }\r
465 \r
466                                 figure_r.resize(figure_r.getWidth() + direction * 1, figure_r.getHeight() + direction * 1);\r
467                                 figure_r.shift(motion_dir * 1, 0);\r
468                                 figure_r.fill = new Color(color_r, color_g, color_b);\r
469 \r
470                                 figure_e.resize(figure_e.getWidth() + direction * 1, figure_e.getHeight() + direction * 1);\r
471                                 figure_e.shift(motion_dir * 1, 0);\r
472                                 figure_e.fill = new Color(color_r, color_g, color_b);\r
473 \r
474                                 if (System.String.Compare(figure_type, "Rectangle") == 0)\r
475                                 {\r
476                                         figure_r.draw();\r
477                                 }\r
478                                 else\r
479                                 {\r
480                                         figure_e.draw();\r
481                                 }\r
482 \r
483 \r
484                                 frame++;\r
485 \r
486 \r
487                                 window.flip();\r
488                         }\r
489                 }\r
490         }\r
491 \r
492 }\r
493  * */\r
494 \r
495 \r
496 /*\r
497 using Psychlops;\r
498 \r
499 namespace PsychlopsSilverlight4test\r
500 {\r
501         public class PsychlopsMain\r
502         {\r
503                 public void psychlops_main()\r
504                 {\r
505                         var figure_type = Psychlops.Widgets.Browser.Element.byID("FIGURE");\r
506                         var size_x = Psychlops.Widgets.Browser.Element.byID("SIZE_X");\r
507                         var size_y = Psychlops.Widgets.Browser.Element.byID("SIZE_Y");\r
508                         var shift_x = Psychlops.Widgets.Browser.Element.byID("SHIFT_X");\r
509                         var shift_y = Psychlops.Widgets.Browser.Element.byID("SHIFT_Y");\r
510                         var color_r = Psychlops.Widgets.Browser.Element.byID("COLOR_R");\r
511                         var color_g = Psychlops.Widgets.Browser.Element.byID("COLOR_G");\r
512                         var color_b = Psychlops.Widgets.Browser.Element.byID("COLOR_B");\r
513 \r
514                         Canvas window = new Canvas(300, 300);\r
515 \r
516                         var figure_r = new Rectangle();\r
517                         var figure_e = new Ellipse();\r
518                         Shape figure = figure_r;\r
519                         \r
520                         while (!Keyboard.esc.pushed())\r
521                         {\r
522                                 if (System.String.Compare(figure_type, "Rectangle") == 0)\r
523                                 {\r
524                                         figure_r.set(size_x, size_y);\r
525                                         figure = figure_r;\r
526                                 }\r
527                                 else\r
528                                 {\r
529                                         figure_e.set(size_x, size_y);\r
530                                         figure = figure_e;\r
531                                 }\r
532                                 figure.fill = new Color(color_r, color_g, color_b);\r
533 \r
534                                 window.clear(Color.black);\r
535                                 figure.centering().shift(shift_x, shift_y).draw();\r
536                                 window.flip();\r
537                         }\r
538                 }\r
539         }\r
540 \r
541 }\r
542 */\r
543 \r
544 \r
545 /*\r
546 using Psychlops;\r
547 \r
548 namespace Psychlops\r
549 {\r
550 \r
551         public class RandomDots\r
552         {\r
553                 Rectangle dot;\r
554                 public Point[] cood;\r
555                 public RandomDots()\r
556                 {\r
557                         cood = new Point[250];\r
558                         dot = new Rectangle(5, 5);\r
559                 }\r
560                 public void draw()\r
561                 {\r
562                         dot.fill = Color.white;\r
563                         foreach (Point p in cood)\r
564                         {\r
565                                 dot.centering(p).draw();\r
566                         }\r
567                 }\r
568         }\r
569 \r
570 }\r
571 \r
572 \r
573 namespace PsychlopsSilverlight4test\r
574 {\r
575 \r
576         public class PsychlopsMain\r
577         {\r
578                 Canvas cnvs;\r
579                 Image img;\r
580                 Rectangle fixation;\r
581                 Shape shape;\r
582                 Color col;\r
583                 int isize = 100;\r
584                 double tfreq = 1;\r
585                 int frames;\r
586                 RandomDots dots;\r
587 \r
588                 public void psychlops_main()\r
589                 {\r
590                         cnvs = new Canvas(500, 500);\r
591                         img = new Image(isize * 2, isize * 2);\r
592                         fixation = new Rectangle(10, 10);\r
593                         fixation.fill = Color.red;\r
594                         //var poly = new Rectangle(100, 100);\r
595                         var poly = new Letters("日本語");\r
596                         //var poly = new Polygon(); poly.append(0, 100); poly.append(-100, 0); poly.append(0, -100); poly.append(100, 0);\r
597                         //var poly = new Ellipse(100, 100);\r
598                         //var poly = new Line(0,0,100, 0);\r
599                         poly.fill = Color.red;\r
600                         poly.stroke = new Stroke { color = Color.yellow, thick = 1 };\r
601                         shape = poly;\r
602 \r
603                         var rng = new Interval();\r
604                         var slider = new Psychlops.Widgets.Slider("tesrt", 0 <= rng <= 5);\r
605 \r
606                         dots = new RandomDots();\r
607 \r
608 \r
609                         while(true) {\r
610                                 frames++;\r
611                                 \r
612                                 cnvs.clear(new Color(Mouse.left.pressed() ? 0.75 : 0.5));\r
613                                 col.set(Math.random(1.0));\r
614 \r
615                                 fixation.centering();\r
616                                 fixation.draw(Color.red);\r
617 \r
618                                 //Figures.drawGabor(ref img, 20, 100, 1, 0, frames * 2.0 * Math.PI / tfreq / 60);\r
619                                 //Figures.drawGaussian(ref img, 20, 1);\r
620                                 Figures.drawGrating(ref img, 30, 30, 20, 1, 2, frames * 2.0 * Math.PI / tfreq / 60);\r
621                                 img.centering(Mouse.position);\r
622                                 img.draw();\r
623 \r
624                                 shape.centering(Mouse.position).shift(100,0);\r
625                                 shape.draw();\r
626                                 if (Keyboard.spc.pressed()) cnvs.var(Mouse.x, 100, 100);\r
627 \r
628                                 cnvs.var(frames, 20, 20);\r
629                                 slider.value = frames/100.0;\r
630 \r
631                                 fixation.shift(100,100);\r
632                                 fixation.draw(new Stroke(Color.blue, 3));\r
633 \r
634                                 for (int i=0; i<dots.cood.Length; i++)\r
635                                 {\r
636                                         dots.cood[i].set(Math.random(500), Math.random(500));\r
637                                 }\r
638                                 dots.draw();\r
639 \r
640                                 cnvs.flip();\r
641                         }\r
642                 }\r
643         }\r
644 \r
645 }\r
646 */