OSDN Git Service

123
[psychlops/silverlight.git] / test4 / PsychlopsMain.cs
1 \r
2 /*\r
3 using Psychlops;\r
4 \r
5 namespace PsychlopsSilverlight4test\r
6 {\r
7         public class PsychlopsMain\r
8         {\r
9                 public void psychlops_main()\r
10                 {\r
11                         var figure_type = Psychlops.Widgets.Browser.Element.byID("FIGURE");\r
12                         var size_x = Psychlops.Widgets.Browser.Element.byID("SIZE_X");\r
13                         var size_y = Psychlops.Widgets.Browser.Element.byID("SIZE_Y");\r
14                         var shift_x = Psychlops.Widgets.Browser.Element.byID("SHIFT_X");\r
15                         var shift_y = Psychlops.Widgets.Browser.Element.byID("SHIFT_Y");\r
16                         var color_r = Psychlops.Widgets.Browser.Element.byID("COLOR_R");\r
17                         var color_g = Psychlops.Widgets.Browser.Element.byID("COLOR_G");\r
18                         var color_b = Psychlops.Widgets.Browser.Element.byID("COLOR_B");\r
19 \r
20                         Canvas window = new Canvas(300, 300);\r
21 \r
22                         var figure_r = new Rectangle();\r
23                         var figure_e = new Ellipse();\r
24                         Shape figure = figure_r;\r
25                         \r
26                         while (!Keyboard.esc.pushed())\r
27                         {\r
28                                 if (System.String.Compare(figure_type, "Rectangle") == 0)\r
29                                 {\r
30                                         figure_r.set(size_x, size_y);\r
31                                         figure = figure_r;\r
32                                 }\r
33                                 else\r
34                                 {\r
35                                         figure_e.set(size_x, size_y);\r
36                                         figure = figure_e;\r
37                                 }\r
38                                 figure.fill = new Color(color_r, color_g, color_b);\r
39 \r
40                                 window.clear(Color.black);\r
41                                 figure.centering().shift(shift_x, shift_y).draw();\r
42                                 window.flip();\r
43                         }\r
44                 }\r
45         }\r
46 \r
47 }\r
48 \r
49 */\r
50 \r
51 using Psychlops;\r
52 \r
53 namespace Psychlops\r
54 {\r
55 \r
56         public class RandomDots\r
57         {\r
58                 Rectangle dot;\r
59                 public Point[] cood;\r
60                 public RandomDots()\r
61                 {\r
62                         cood = new Point[250];\r
63                         dot = new Rectangle(5, 5);\r
64                 }\r
65                 public void draw()\r
66                 {\r
67                         dot.fill = Color.white;\r
68                         foreach (Point p in cood)\r
69                         {\r
70                                 dot.centering(p).draw();\r
71                         }\r
72                 }\r
73         }\r
74 \r
75 }\r
76 \r
77 \r
78 \r
79 namespace PsychlopsSilverlight4test\r
80 {\r
81 \r
82         public class PsychlopsMain\r
83         {\r
84                 Canvas cnvs;\r
85                 Image img;\r
86                 Rectangle fixation;\r
87                 Shape shape;\r
88                 Color col;\r
89                 int isize = 100;\r
90                 double tfreq = 1;\r
91                 int frames;\r
92                 RandomDots dots;\r
93 \r
94                 public void psychlops_main()\r
95                 {\r
96                         cnvs = new Canvas(500, 500);\r
97                         img = new Image(isize * 2, isize * 2);\r
98                         fixation = new Rectangle(10, 10);\r
99                         fixation.fill = Color.red;\r
100                         //var poly = new Rectangle(100, 100);\r
101                         var poly = new Letters("日本語");\r
102                         //var poly = new Polygon(); poly.append(0, 100); poly.append(-100, 0); poly.append(0, -100); poly.append(100, 0);\r
103                         //var poly = new Ellipse(100, 100);\r
104                         //var poly = new Line(0,0,100, 0);\r
105                         poly.fill = Color.red;\r
106                         poly.stroke = new Stroke { color = Color.yellow, thick = 1 };\r
107                         shape = poly;\r
108 \r
109                         var rng = new Interval();\r
110                         var slider = new Psychlops.Widgets.Slider("tesrt", 0 <= rng <= 5);\r
111 \r
112                         dots = new RandomDots();\r
113 \r
114 \r
115                         while (true)\r
116                         {\r
117                                 frames++;\r
118 \r
119                                 cnvs.clear(new Color(Mouse.left.pressed() ? 0.75 : 0.5));\r
120                                 col.set(Math.random(1.0));\r
121 \r
122                                 fixation.centering();\r
123                                 fixation.draw(Color.red);\r
124 \r
125                                 //Figures.drawGabor(ref img, 20, 100, 1, 0, frames * 2.0 * Math.PI / tfreq / 60);\r
126                                 //Figures.drawGaussian(ref img, 20, 1);\r
127                                 Figures.drawGrating(ref img, 30, 30, 20, 1, 2, frames * 2.0 * Math.PI / tfreq / 60);\r
128                                 img.centering(Mouse.position);\r
129                                 img.draw();\r
130 \r
131                                 shape.centering(Mouse.position).shift(100, 0);\r
132                                 shape.draw();\r
133                                 if (Keyboard.spc.pressed()) cnvs.var(Mouse.x, 100, 100);\r
134 \r
135                                 cnvs.var(frames, 20, 20);\r
136                                 slider.value = frames / 100.0;\r
137 \r
138                                 fixation.shift(100, 100);\r
139                                 fixation.draw(new Stroke(Color.blue, 3));\r
140 \r
141                                 for (int i = 0; i < dots.cood.Length; i++)\r
142                                 {\r
143                                         dots.cood[i].set(Math.random(500), Math.random(500));\r
144                                 }\r
145                                 dots.draw();\r
146 \r
147                                 cnvs.flip();\r
148                         }\r
149                 }\r
150         }\r
151 \r
152 }\r
153 \r
154 \r
155 \r