Esempio n. 1
0
        private NShape CreateFlexiArrow2Shape(NPoint from, NPoint to)
        {
            NShape shape = new NShape();

            shape.Init1DShape(EN1DShapeXForm.Vector);

            shape.Height = 0;
            shape.BeginX = from.X;
            shape.BeginY = from.Y;
            shape.EndX   = to.X;
            shape.EndY   = to.Y;

            // add controls
            NControl controlPoint = new NControl();

            controlPoint.SetFx("X", "13.0956");
            controlPoint.SetFx("Y", "Height*0.75");
            controlPoint.Visible   = true;
            controlPoint.XBehavior = ENCoordinateBehavior.OffsetFromMin;
            controlPoint.YBehavior = ENCoordinateBehavior.OffsetFromMid;
            controlPoint.Tooltip   = "Modify arrowhead 1";
            shape.Controls.AddChild(controlPoint);

            controlPoint = new NControl();
            controlPoint.SetFx("X", "Width-40");
            controlPoint.SetFx("Y", "Height*1");
            controlPoint.Visible   = true;
            controlPoint.XBehavior = ENCoordinateBehavior.OffsetFromMax;
            controlPoint.YBehavior = ENCoordinateBehavior.OffsetFromMid;
            controlPoint.Tooltip   = "Modify arrowhead 2";
            shape.Controls.AddChild(controlPoint);

            controlPoint = new NControl();
            controlPoint.SetFx("X", "Width-20");
            controlPoint.SetFx("Y", "Height*1");
            controlPoint.Visible   = true;
            controlPoint.XBehavior = ENCoordinateBehavior.OffsetFromMax;
            controlPoint.YBehavior = ENCoordinateBehavior.OffsetFromMid;
            controlPoint.Tooltip   = "Modify arrowhead 3";
            shape.Controls.AddChild(controlPoint);

            // add a geometry
            NGeometry geometry   = new NGeometry();
            NMoveTo   plotFigure =
                geometry.MoveTo("Width*0", "Height*0.5");

            geometry.LineTo("Controls.0.X", "ABS(Controls.0.Y)");
            geometry.LineTo("Controls.1.X", "ABS(Controls.1.Y)");
            geometry.LineTo("Controls.2.X", "ABS(Controls.2.Y)");
            geometry.LineTo("Width", "Height*0.5");
            geometry.LineTo("Controls.2.X", "Height-Geometry.3.Y");
            geometry.LineTo("Controls.1.X", "Height-Geometry.2.Y");
            geometry.LineTo("Controls.0.X", "Height-Geometry.1.Y");
            geometry.LineTo("Geometry.0.X", "Geometry.0.Y");
            plotFigure.CloseFigure = true;
            shape.Geometry         = geometry;

            return(shape);
        }