X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=test4%2FPsychlopsMain.cs;h=385938fedc57cef32a13b1a250e7807392be889a;hb=06a470a0e79a283223a73d8c5f6e43ef76174d97;hp=cf7d1abcab0474644e1139af14fb1ebb9b105994;hpb=c5b8556ef3fd456ec3e0a2465aa5f1bc03df2065;p=psychlops%2Fsilverlight.git diff --git a/test4/PsychlopsMain.cs b/test4/PsychlopsMain.cs index cf7d1ab..385938f 100644 --- a/test4/PsychlopsMain.cs +++ b/test4/PsychlopsMain.cs @@ -1,54 +1,199 @@ - +///+ Prefix linkto BasicCode1 +//// Lines for set up Psychlops environment +using Psychlops; + +namespace PsychlopsSilverlightApp +{ + + public class PsychlopsMain + {///- Prefix linkto BasicCode1 + + + ///+ Main Routine + //// Psychlops runs at the first line of this function psychlops_main(). + public void psychlops_main() + { + ///+ 0 linkto BasicCode3_1a + ////Prepare global parameters + int maxrectnum = 200; + int rectnum = 100; + double rectsize = 5.0; + Rectangle[] rect = StaticFunctions.NewArray(maxrectnum); + double[] rectcolorR = new double[maxrectnum]; + double[] rectcolorG = new double[maxrectnum]; + double[] rectcolorB = new double[maxrectnum]; + ///- 0 linkto BasicCode3_1a + + Canvas window = new Canvas(Canvas.window); + var img = new Image("logo.png"); + + + ///+ 1 linkto BasicCode3_1a + ////Initialize + for (int i = 0; i < rectnum; i++) + { + ///+ 1.1 set1 + ////set positions and sizes + rect[i].set(rectsize, rectsize); //Set a size of rectangles. + rect[i].centering(); + rect[i].shift((i - 0.5 * rectnum) * rectsize * 1.5, + (i - 0.5 * rectnum) * rectsize * 1.5); //Move Rectangles to initial positions + ///- 1.1 set1 + ///+ 1.2 set2 + ////set colors + rectcolorR[i] = Math.random(1.0) * 0.5; //Set R values. Note that "i" is converted to double-type. + rectcolorG[i] = Math.random(1.0) * 0.5; //Set G values. Note that "i" is converted to double-type. + rectcolorB[i] = Math.random(1.0) * 0.5; //Set B values. Note that "i" is converted to double-type. + ///- 1.2 set2 + } + ///- 1 linkto BasicCode3_1a + + ///+ 2 drawing + ////drawing objects + ///+ 2.1 linkto BasicCode3_2a + ////Prepare variables for movie control; + int frame = 0; + int motion_dir = 1; + double Horizontal_shift, Vertical_shift; + ///- 2.1 linkto BasicCode3_2a + + while (!Keyboard.esc.pushed()) + { + window.clear(Color.black); + for (int i = 0; i < rectnum; i++) + { + ///+ 2.2 loopset1 + ////set positions and sizes + + Horizontal_shift = Math.sin(2 * Math.PI * ((double)frame / 30.0)) * motion_dir * 100.0; //Calculate horizontal displacement from the center. + Vertical_shift = Math.sin(2 * Math.PI * ((double)frame / 30.0)) * motion_dir * 0.0;//Calculate vertical displacement from the center. + rect[i].resize(rectsize, rectsize); //Resize rectangles. + rect[i].centering(); //Rectangles are moved to the center... + rect[i].shift(Horizontal_shift + (i - 0.5 * rectnum) * rectsize * 1.5, + Vertical_shift + (i - 0.5 * rectnum) * rectsize * 1.5); //and then move to designated positions + ///- 2.2 loopset1 + + ///+ 2.3 linkto BasicCode3_2a + ////set colors + rectcolorR[i] = Math.random(1.0) * 0.5; //Set R values. Note that "i" is converted to double-type. + rectcolorG[i] = Math.random(1.0) * 0.5; //Set G values. Note that "i" is converted to double-type. + rectcolorB[i] = Math.random(1.0) * 0.5; //Set B values. Note that "i" is converted to double-type. + ///- 2.3 linkto BasicCode3_2a + + } + ///+ 2.4 linkto BasicCode3_1a + for (int i = 0; i < rectnum; i++) + { + rect[i].draw(new Color(rectcolorR[i], rectcolorG[i], rectcolorB[i])); //draw objects by designated colors. + } + window.flip(); + ///- 2.4 linkto BasicCode3_1a + frame++; + } + ///- 2 drawing + + } + ///- Main Routine + + + } + +} + + + + + /* using Psychlops; namespace PsychlopsSilverlight4test { - public class PsychlopsMain { + void RectLuminance() + { + Canvas display = new Canvas(Canvas.window); + Psychlops.Solver.BinomialLikelihood.showWindow(Math.cumulativeNormalDistibution); + Letters le = new Letters("Reload to restart"); + le.fill = Color.black; + le.align = Letters.HorizontalAlign.center; - Canvas cnvs; + while (!Keyboard.esc.pushed()) + { + Display.clear(Color.white); + le.centering().shift(-200,-10).draw(); + Display.flip(); + } + + } + + + public void psychlops_main() + { + RectLuminance(); + } + + + } + +} + +*/ + + + + + + + + + +/* + using Psychlops; + +namespace PsychlopsSilverlight4test +{ + + public class PsychlopsMain + { + + Psychlops.Canvas cnvs; int i; - object xxx; double x, y, z, t, p, temp, xx, yy; //Set Target Initial Value double TargetEcce = 100.0, TargetSize = 5.0, TargetNumber = 5, Rotate = 0.0; //Set Background Initial Value - double DotNumber = 50, thetaSpeed = 3.0, Axis = 0.0, BGRadii = 150, BGSize = 5.0; - Psychlops.Widgets.Slider DotNumberS; + double Axis = 0.0, BGRadii = 150, BGSize = 5.0; + Psychlops.Widgets.Slider thetaSpeed, DotNumber; + Image img; + + public void psychlops_main() { - throw new System.Exception("Speed"); - //DotNumberS = new Psychlops.Widgets.Slider("test", new Interval(10, 500)); - //Independent ind = new Independent(); - cnvs = new Canvas(500, 500); - //Image img = new Image(20, 20); - //img.field(delegate(int x, int y) { return new Color(Math.sin(x + y)); }); - /* - for (int x = 0; x < 20; x++) - { - for (int y = 0; y < 20; y++) - { -// img.pix(x, y, new Color(Math.sin(x + y))); - } - } + Psychlops.Solver.BinomialLikelihood.showWindow(Math.cumulativeNormalDistibution); + + + img = new Image("Resources/logo.png"); + Interval rng = new Interval(); + thetaSpeed = new Psychlops.Widgets.Slider("Label", -10 <= rng <= 10, 3.0); + DotNumber = new Psychlops.Widgets.Slider("DotNum", 0 <= rng <= 100, 50.0); //Declare background dots and target Rectangle[] BGDot = new Rectangle[2048]; for(int i=0; i<2048; i++){ - BGDot[i]=new Rectangle(); + BGDot[i]=new Rectangle(); } Rectangle[] Target= new Rectangle[10]; for(int i=0; i<10; i++){ - Target[i]=new Rectangle(); + Target[i]=new Rectangle(); } @@ -62,83 +207,82 @@ namespace PsychlopsSilverlight4test //Initialize positions of background dots for(int i=0; i<2048; i++){ - t=2.0*Math.PI*Math.random(1.0); - p=2.0*Math.PI*Math.random(1.0); - DotX[i]=t; - DotY[i]=p; - - x=BGRadii*Math.cos(t)*Math.cos(p); - y=BGRadii*Math.sin(t)*Math.cos(p); - BGDot[i].set(BGSize, BGSize); - BGDot[i].centering().shift(x,y); + t=2.0*Math.PI*Math.random(1.0); + p=2.0*Math.PI*Math.random(1.0); + DotX[i]=t; + DotY[i]=p; + + x=BGRadii*Math.cos(t)*Math.cos(p); + y=BGRadii*Math.sin(t)*Math.cos(p); + BGDot[i].set(BGSize, BGSize); + BGDot[i].centering().shift(x,y); } //Initialize positions of targets for(int i=0; i<10; i++)Target[i].set(TargetSize, TargetSize); double COS, SIN; - + //DotNumber = 200; //Main stimulus loop while(true){ - //Clear the main window - cnvs.clear(Color.black); - - - temp=Axis/360*2*Math.PI; - COS=Math.cos(temp); - SIN=Math.sin(temp); - - //Calculate positions of background dots and set them - for(int i=0; i