コード例 #1
0
 public SceneGenerator(Scene template)
 {
     mTemplate = template;
 }
コード例 #2
0
ファイル: Form1.cs プロジェクト: ghraelo/BraitenbergSimulator
        private void DrawGraph3(ref PlotModel myModel, VehicleData v, Scene scene, double time, OxyColor c)
        {
            //detect discontinuities in position and split lists accordingly
            var prevPos = v.Position[0];
            var sections = new List<List<XYPoint>>();

            //set up first list and point
            sections.Add(new List<XYPoint>());
            int currList = 0;
            sections[0].Add(prevPos);

            var positionData = new LineSeries();
            positionData.Color = c;

            for (int i = 1; i < v.Position.Count; i++)
            {
                positionData.Points.Add(new DataPoint(v.Time[i], v.Angle[i]));

                if (time > 0 && v.Time[i] > time)
                {
                    break;
                }
            }

            myModel.Series.Add(positionData);
        }
コード例 #3
0
ファイル: Form1.cs プロジェクト: ghraelo/BraitenbergSimulator
        private void DrawGraph(ref PlotModel myModel, VehicleData v, Scene scene, OxyColor c)
        {
            //detect discontinuities in position and split lists accordingly
            var prevPos = v.Position[0];
            var sections = new List<List<XYPoint>>();

            //set up first list and point
            sections.Add(new List<XYPoint>());
            int currList = 0;
            sections[0].Add(prevPos);

            for (int i = 1; i < v.Position.Count; i++)
            {
                var currPos = v.Position[i];
                if (IsDiscontinuity(prevPos, currPos, 2.0f))
                {
                    currList++;
                    sections.Add(new List<XYPoint>());
                }
                sections[currList].Add(currPos);
                prevPos = currPos;
            }

            foreach (var section in sections)
            {
                var positionData = new LineSeries();
                positionData.Color = c;
                positionData.Points.AddRange(section.Select(xy => (DataPoint)xy));

                myModel.Series.Add(positionData);
            }
            //var lights = new ScatterSeries();
            //lights.MarkerType = MarkerType.Circle;
            foreach (var light in scene.Lights)
            {
                LineSeries circle;
                if (light.Position != null)
                {
                    circle = MakeCircle(light.Position[0], light.Position[1], light.Radius);
                }
                else
                {
                    circle = new LineSeries();
                    foreach(List<double> d in light.Path)
                    {
                        circle.Points.Add(new DataPoint(d[0], d[1]));
                    }
                    circle.Points.Add(new DataPoint(light.Path[0][0], light.Path[0][1]));
                }
                circle.Color = Color.Black.ToOxyColor();
                myModel.Series.Add(circle);

                //lights.Points.Add(new ScatterPoint(light.Position[0], light.Position[1],light.Radius));
            }
            //myModel.Series.Add(lights);
        }
コード例 #4
0
        private void loadButton_Click(object sender, EventArgs e)
        {
            var ofd = new OpenFileDialog();
            ofd.InitialDirectory = @"H: \Users\Jack\Source\Repos\BraitenbergSimulator\BraitenbergSimulator\BraitenbergSimulator\yaml";
            ofd.Filter = "yaml files (*.yaml)|*.yaml|All files (.*)|*.*";
            ofd.FilterIndex = 0;
            ofd.RestoreDirectory = true;

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                theScene = Scene.FromFile(ofd.FileName);
            }
        }