Example #1
0
    // Add a chain-like figure using TransformedFigure and CompositeFigure.
    private void CreateChain()
    {
      var ellipse = new EllipseFigure
      {
        IsFilled = false,
        RadiusX = 1f,
        RadiusY = 1f,
      };

      var compositeFigure = new CompositeFigure();
      for (int i = 0; i < 9; i++)
      {
        var transformedEllipse = new TransformedFigure(ellipse)
        {
          Scale = new Vector3F(0.4f, 0.2f, 1),
          Pose = new Pose(new Vector3F(-2 + i * 0.5f, 0, 0), Matrix33F.CreateRotationX(ConstantsF.PiOver2 * (i % 2)))
        };
        compositeFigure.Children.Add(transformedEllipse);
      }

      _scene.Children.Add(new FigureNode(compositeFigure)
      {
        Name = "Chain",
        StrokeThickness = 2,
        StrokeColor = new Vector3F(0.1f),
        StrokeAlpha = 1,
        PoseLocal = new Pose(new Vector3F(0, 3, 0)),
      });
    }
Example #2
0
    // Add some ellipses.
    private void CreateEllipses()
    {
      Figure figure = new EllipseFigure
      {
        IsFilled = false,
        RadiusX = 0.5f,
        RadiusY = 0.25f,
      };
      FigureNode figureNode = new FigureNode(figure)
      {
        Name = "Ellipse #1",
        StrokeThickness = 1,
        StrokeColor = new Vector3F(0.7f, 0.3f, 0.5f),
        StrokeAlpha = 1,
        PoseLocal = new Pose(new Vector3F(-2, 2, 0))
      };
      _scene.Children.Add(figureNode);

      figure = new EllipseFigure
      {
        IsFilled = false,
        RadiusX = 0.25f,
        RadiusY = 0.4f,
      };
      figureNode = new FigureNode(figure)
      {
        Name = "Ellipse #2",
        StrokeThickness = 3,
        StrokeColor = new Vector3F(0.2f, 0.3f, 0.3f),
        StrokeAlpha = 0.5f,
        StrokeDashPattern = new Vector4F(10, 2, 3, 2),
        DashInWorldSpace = false,
        PoseLocal = new Pose(new Vector3F(-1, 2, 0))
      };
      _scene.Children.Add(figureNode);

      figure = new EllipseFigure
      {
        IsFilled = true,
        RadiusX = 0.3f,
        RadiusY = 0.35f,
      };
      figureNode = new FigureNode(figure)
      {
        Name = "Ellipse #3",
        StrokeThickness = 2,
        StrokeColor = new Vector3F(0.3f, 0, 0.2f),
        StrokeAlpha = 1,
        StrokeDashPattern = new Vector4F(10, 2, 3, 2) / 100,
        DashInWorldSpace = true,
        FillColor = new Vector3F(0.7f, 0, 0.5f),
        FillAlpha = 0.5f,
        PoseLocal = new Pose(new Vector3F(-0, 2, 0))
      };
      _scene.Children.Add(figureNode);

      figure = new EllipseFigure
      {
        IsFilled = true,
        RadiusX = 0.5f,
        RadiusY = 0.1f,
      };
      figureNode = new FigureNode(figure)
      {
        Name = "Ellipse #4",
        StrokeThickness = 2,
        StrokeColor = new Vector3F(0, 0, 0),
        StrokeAlpha = 1,
        StrokeDashPattern = new Vector4F(1, 1, 1, 1) / 100,
        DashInWorldSpace = true,
        FillColor = new Vector3F(0.3f, 0.3f, 0.3f),
        FillAlpha = 0.5f,
        PoseLocal = new Pose(new Vector3F(1, 2, 0))
      };
      _scene.Children.Add(figureNode);

      figure = new EllipseFigure
      {
        IsFilled = true,
        RadiusX = 0.2f,
        RadiusY = 0.25f,
      };
      figureNode = new FigureNode(figure)
      {
        Name = "Ellipse #5",
        StrokeThickness = 2,
        StrokeColor = new Vector3F(0.3f),
        StrokeAlpha = 1,
        FillColor = new Vector3F(0.3f),
        FillAlpha = 1,
        PoseLocal = new Pose(new Vector3F(2, 2, 0))
      };
      _scene.Children.Add(figureNode);
    }