예제 #1
0
 public BasicStroke(float width, int cap, int join, float miterlimit)
 {
     pen = new System.Drawing.Pen(System.Drawing.Color.Black, width);
     System.Drawing.Drawing2D.LineCap linecap = System.Drawing.Drawing2D.LineCap.Flat;
     if (cap == 1)
     {
         linecap = System.Drawing.Drawing2D.LineCap.Round;
     }
     else if (cap == 2)
     {
         linecap = System.Drawing.Drawing2D.LineCap.Square;
     }
     pen.StartCap = linecap;
     pen.EndCap   = linecap;
     System.Drawing.Drawing2D.LineJoin linejoin = System.Drawing.Drawing2D.LineJoin.Miter;
     if (join == 1)
     {
         linejoin = System.Drawing.Drawing2D.LineJoin.Round;
     }
     else if (join == 2)
     {
         linejoin = System.Drawing.Drawing2D.LineJoin.Bevel;
     }
     pen.LineJoin   = linejoin;
     pen.MiterLimit = miterlimit;
 }
예제 #2
0
 public void setStartCap(System.Drawing.Drawing2D.LineCap cap)
 {
     for (int i = 0; i < max; i++)
     {
         pens[i].StartCap = cap;
     }
 }
        public static PenLineCap LineCap(System.Drawing.Drawing2D.LineCap lineCap)
        {
            var penLineCap = PenLineCap.Flat;

            switch (lineCap)
            {
            case System.Drawing.Drawing2D.LineCap.Flat:
                penLineCap = PenLineCap.Flat;
                break;

            case System.Drawing.Drawing2D.LineCap.Square:
                penLineCap = PenLineCap.Square;
                break;

            case System.Drawing.Drawing2D.LineCap.Round:
                penLineCap = PenLineCap.Round;
                break;

            case System.Drawing.Drawing2D.LineCap.Triangle:
                penLineCap = PenLineCap.Triangle;
                break;

            case System.Drawing.Drawing2D.LineCap.NoAnchor:
                penLineCap = PenLineCap.Flat;
                break;

            case System.Drawing.Drawing2D.LineCap.SquareAnchor:
                penLineCap = PenLineCap.Flat;
                break;

            case System.Drawing.Drawing2D.LineCap.RoundAnchor:
                penLineCap = PenLineCap.Flat;
                break;

            case System.Drawing.Drawing2D.LineCap.DiamondAnchor:
                penLineCap = PenLineCap.Flat;
                break;

            case System.Drawing.Drawing2D.LineCap.ArrowAnchor:
                penLineCap = PenLineCap.Flat;
                break;

            case System.Drawing.Drawing2D.LineCap.Custom:
                penLineCap = PenLineCap.Flat;
                break;

            case System.Drawing.Drawing2D.LineCap.AnchorMask:

                break;

            default:
                throw new Exception("Invalid value for LineCap");
            }
            return(penLineCap);
        }
예제 #4
0
        /// <summary>
        /// Vykreslí přímou linku nebo S křivku { Prev.End to Next.Begin }
        /// </summary>
        /// <param name="e">Data pro kreslení</param>
        /// <param name="mode">Důvody zobrazení</param>
        /// <param name="ratio">Poměr průhlednosti: hodnota v rozsahu 0.0 (neviditelná) - 1.0 (plná barva)</param>
        protected void DrawPrevNext(GInteractiveDrawArgs e, TimeGraphLinkMode mode, float ratio)
        {
            TimeGraph     graph         = (this.ItemNext != null ? this.ItemNext.Graph : (this.ItemPrev != null ? this.ItemPrev.Graph : null));
            RelationState relationState = GetRelationState(this.ItemPrev, this.ItemNext);
            Color         color1        = this.GetColorForState(relationState, graph);

            Point?prevPoint = GetPoint(this.ItemPrev, RectangleSide.MiddleRight, true, true);
            Point?nextPoint = GetPoint(this.ItemNext, RectangleSide.MiddleLeft, true, true);

            LinkLineType lineType = this.CurrentLineShape;
            float?       treshold = 4f * (float)(this.LinkWidth.HasValue ? this.LinkWidth.Value : 3);

            using (System.Drawing.Drawing2D.GraphicsPath graphicsPath = Painter.CreatePathLink(lineType, prevPoint, nextPoint, treshold))
            {
                bool useRoundAnchor = (lineType == LinkLineType.ZigZagHorizontal || lineType == LinkLineType.ZigZagVertical || lineType == LinkLineType.ZigZagOptimal);
                System.Drawing.Drawing2D.LineCap startCap = (useRoundAnchor ? System.Drawing.Drawing2D.LineCap.RoundAnchor : System.Drawing.Drawing2D.LineCap.Round);
                System.Drawing.Drawing2D.LineCap endCap   = System.Drawing.Drawing2D.LineCap.ArrowAnchor;
                Painter.DrawLinkPath(e.Graphics, graphicsPath, color1, null, this.LinkWidth, startCap, endCap, ratio);
            }
        }
예제 #5
0
        public static string EncodeLineCapStyle(System.Drawing.Drawing2D.LineCap cap)
        {
            switch (cap)
            {
            case LineCap.ArrowAnchor:
                return("arrow");

            case LineCap.DiamondAnchor:
                return("diamond");

            case LineCap.RoundAnchor:
                return("round");

            case LineCap.SquareAnchor:
                return("square");

            default:
            case LineCap.NoAnchor:
                return("none");
            }
        }
예제 #6
0
 public void SetLineCap(System.Drawing.Drawing2D.LineCap startCap, System.Drawing.Drawing2D.LineCap endCap, System.Drawing.Drawing2D.DashCap dashCap)
 {
 }