X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=test4%2FPsychlopsMain.cs;h=385938fedc57cef32a13b1a250e7807392be889a;hb=06a470a0e79a283223a73d8c5f6e43ef76174d97;hp=058e33207aea5089b87c8230d2f4efceff14b720;hpb=cb8916a7a5cd929f57b3f9edd99209680db90546;p=psychlops%2Fsilverlight.git diff --git a/test4/PsychlopsMain.cs b/test4/PsychlopsMain.cs index 058e332..385938f 100644 --- a/test4/PsychlopsMain.cs +++ b/test4/PsychlopsMain.cs @@ -1,4 +1,338 @@ -using Psychlops; +///+ 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; + + 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; + 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 Axis = 0.0, BGRadii = 150, BGSize = 5.0; + Psychlops.Widgets.Slider thetaSpeed, DotNumber; + Image img; + + + + public void psychlops_main() + { + cnvs = new Canvas(500, 500); + + 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(); + } + Rectangle[] Target= new Rectangle[10]; + for(int i=0; i<10; i++){ + Target[i]=new Rectangle(); + } + + + //Declare Matrix to keep back ground dots' coordinate value + double[] DotX=new double[2048]; + double[] DotY = new double[2048]; + + + //Set Independent variables to manipulate + + + //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); + } + + //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(); + + + 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