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