Example #1
0
        /// <summary>
        /// 根据指定的方向绘制一个箭头
        /// </summary>
        /// <param name="g">绘图对象</param>
        /// <param name="brush">笔刷</param>
        /// <param name="point">起始点</param>
        /// <param name="size">长度</param>
        /// <param name="direction">方向</param>
        public static void PaintTriangle(Graphics g, Brush brush, PointF point, int size, EGraphDirection direction)
        {
            PointF[] array = new PointF[4];

            if (direction == EGraphDirection.Leftward)
            {
                array[0] = new PointF(point.X, point.Y - size);
                array[1] = new PointF(point.X, point.Y + size);
                array[2] = new PointF(point.X - (2 * size), point.Y);
            }
            else if (direction == EGraphDirection.Rightward)
            {
                array[0] = new PointF(point.X, point.Y - size);
                array[1] = new PointF(point.X, point.Y + size);
                array[2] = new PointF(point.X + (2 * size), point.Y);
            }
            else if (direction == EGraphDirection.Upward)
            {
                array[0] = new PointF(point.X - size, point.Y);
                array[1] = new PointF(point.X + size, point.Y);
                array[2] = new PointF(point.X, point.Y - (2 * size));
            }
            else
            {
                array[0] = new PointF(point.X - size, point.Y);
                array[1] = new PointF(point.X + size, point.Y);
                array[2] = new PointF(point.X, point.Y + (2 * size));
            }

            array[3] = array[0];
            g.FillPolygon(brush, array);
        }
Example #2
0
        /// <summary>
        /// Paints the triangle.
        /// </summary>
        /// <param name="g">The g.</param>
        /// <param name="brush">The brush.</param>
        /// <param name="point">The point.</param>
        /// <param name="size">The size.</param>
        /// <param name="direction">The direction.</param>
        public static void PaintTriangle(Graphics g, System.Drawing.Brush brush, Point point, int size, EGraphDirection direction)
        {
            Point[] array = new Point[4];
            switch (direction)
            {
            case EGraphDirection.Leftward:
                array[0] = new Point(point.X, point.Y - size);
                array[1] = new Point(point.X, point.Y + size);
                array[2] = new Point(point.X - 2 * size, point.Y);
                break;

            case EGraphDirection.Rightward:
                array[0] = new Point(point.X, point.Y - size);
                array[1] = new Point(point.X, point.Y + size);
                array[2] = new Point(point.X + 2 * size, point.Y);
                break;

            case EGraphDirection.Upward:
                array[0] = new Point(point.X - size, point.Y);
                array[1] = new Point(point.X + size, point.Y);
                array[2] = new Point(point.X, point.Y - 2 * size);
                break;

            default:
                array[0] = new Point(point.X - size, point.Y);
                array[1] = new Point(point.X + size, point.Y);
                array[2] = new Point(point.X, point.Y + 2 * size);
                break;
            }
            array[3] = array[0];
            g.FillPolygon(brush, array);
        }