// 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)), }); }
// 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); }