Class ShapeUtils

java.lang.Object
org.jfree.chart.util.ShapeUtils

public class ShapeUtils
extends Object
Utility methods for Shape objects.
  • Method Details

    • clone

      public static Shape clone​(Shape shape)
      Returns a clone of the specified shape, or null. At the current time, this method supports cloning for instances of Line2D, RectangularShape, Area and GeneralPath.

      RectangularShape includes Arc2D, Ellipse2D, Rectangle2D, RoundRectangle2D.

      Parameters:
      shape - the shape to clone (null permitted, returns null).
      Returns:
      A clone or null.
    • equal

      public static boolean equal​(Shape s1, Shape s2)
      Tests two shapes for equality. If both shapes are null, this method will return true.

      In the current implementation, the following shapes are supported: Ellipse2D, Line2D and Rectangle2D (implicit).

      Parameters:
      s1 - the first shape (null permitted).
      s2 - the second shape (null permitted).
      Returns:
      A boolean.
    • equal

      public static boolean equal​(Line2D l1, Line2D l2)
      Compares two lines are returns true if they are equal or both null.
      Parameters:
      l1 - the first line (null permitted).
      l2 - the second line (null permitted).
      Returns:
      A boolean.
    • equal

      public static boolean equal​(Ellipse2D e1, Ellipse2D e2)
      Compares two ellipses and returns true if they are equal or both null.
      Parameters:
      e1 - the first ellipse (null permitted).
      e2 - the second ellipse (null permitted).
      Returns:
      A boolean.
    • equal

      public static boolean equal​(Arc2D a1, Arc2D a2)
      Compares two arcs and returns true if they are equal or both null.
      Parameters:
      a1 - the first arc (null permitted).
      a2 - the second arc (null permitted).
      Returns:
      A boolean.
    • equal

      public static boolean equal​(Polygon p1, Polygon p2)
      Tests two polygons for equality. If both are null this method returns true.
      Parameters:
      p1 - polygon 1 (null permitted).
      p2 - polygon 2 (null permitted).
      Returns:
      A boolean.
    • equal

      public static boolean equal​(GeneralPath p1, GeneralPath p2)
      Tests two polygons for equality. If both are null this method returns true.
      Parameters:
      p1 - path 1 (null permitted).
      p2 - path 2 (null permitted).
      Returns:
      A boolean.
    • createTranslatedShape

      public static Shape createTranslatedShape​(Shape shape, double transX, double transY)
      Creates and returns a translated shape.
      Parameters:
      shape - the shape (null not permitted).
      transX - the x translation (in Java2D space).
      transY - the y translation (in Java2D space).
      Returns:
      The translated shape.
    • createTranslatedShape

      public static Shape createTranslatedShape​(Shape shape, RectangleAnchor anchor, double locationX, double locationY)
      Translates a shape to a new location such that the anchor point (relative to the rectangular bounds of the shape) aligns with the specified (x, y) coordinate in Java2D space.
      Parameters:
      shape - the shape (null not permitted).
      anchor - the anchor (null not permitted).
      locationX - the x-coordinate (in Java2D space).
      locationY - the y-coordinate (in Java2D space).
      Returns:
      A new and translated shape.
    • rotateShape

      public static Shape rotateShape​(Shape base, double angle, float x, float y)
      Rotates a shape about the specified coordinates.
      Parameters:
      base - the shape (null permitted, returns null).
      angle - the angle (in radians).
      x - the x coordinate for the rotation point (in Java2D space).
      y - the y coordinate for the rotation point (in Java2D space).
      Returns:
      the rotated shape.
    • drawRotatedShape

      public static void drawRotatedShape​(Graphics2D g2, Shape shape, double angle, float x, float y)
      Draws a shape with the specified rotation about (x, y).
      Parameters:
      g2 - the graphics device (null not permitted).
      shape - the shape (null not permitted).
      angle - the angle (in radians).
      x - the x coordinate for the rotation point.
      y - the y coordinate for the rotation point.
    • createDiagonalCross

      public static Shape createDiagonalCross​(float l, float t)
      Creates a diagonal cross shape.
      Parameters:
      l - the length of each 'arm'.
      t - the thickness.
      Returns:
      A diagonal cross shape.
    • createRegularCross

      public static Shape createRegularCross​(float l, float t)
      Creates a diagonal cross shape.
      Parameters:
      l - the length of each 'arm'.
      t - the thickness.
      Returns:
      A diagonal cross shape.
    • createDiamond

      public static Shape createDiamond​(float s)
      Creates a diamond shape.
      Parameters:
      s - the size factor (equal to half the height of the diamond).
      Returns:
      A diamond shape.
    • createUpTriangle

      public static Shape createUpTriangle​(float s)
      Creates a triangle shape that points upwards.
      Parameters:
      s - the size factor (equal to half the height of the triangle).
      Returns:
      A triangle shape.
    • createDownTriangle

      public static Shape createDownTriangle​(float s)
      Creates a triangle shape that points downwards.
      Parameters:
      s - the size factor (equal to half the height of the triangle).
      Returns:
      A triangle shape.
    • createLineRegion

      public static Shape createLineRegion​(Line2D line, float width)
      Creates a region surrounding a line segment by 'widening' the line segment. A typical use for this method is the creation of a 'clickable' region for a line that is displayed on-screen.
      Parameters:
      line - the line (null not permitted).
      width - the width of the region.
      Returns:
      A region that surrounds the line.
    • getPointInRectangle

      public static Point2D getPointInRectangle​(double x, double y, Rectangle2D area)
      Returns a point based on (x, y) but constrained to be within the bounds of a given rectangle.
      Parameters:
      x - the x-coordinate.
      y - the y-coordinate.
      area - the constraining rectangle (null not permitted).
      Returns:
      A point within the rectangle.
      Throws:
      NullPointerException - if area is null.
    • contains

      public static boolean contains​(Rectangle2D rect1, Rectangle2D rect2)
      Checks, whether the given rectangle1 fully contains rectangle 2 (even if rectangle 2 has a height or width of zero!).
      Parameters:
      rect1 - the first rectangle.
      rect2 - the second rectangle.
      Returns:
      A boolean.
    • intersects

      public static boolean intersects​(Rectangle2D rect1, Rectangle2D rect2)
      Checks, whether the given rectangle1 fully contains rectangle 2 (even if rectangle 2 has a height or width of zero!).
      Parameters:
      rect1 - the first rectangle.
      rect2 - the second rectangle.
      Returns:
      A boolean.
    • isPointInRect

      public static boolean isPointInRect​(Rectangle2D rect, double x, double y)
      Returns true if the specified point (x, y) falls within or on the boundary of the specified rectangle.
      Parameters:
      rect - the rectangle (null not permitted).
      x - the x-coordinate.
      y - the y-coordinate.
      Returns:
      A boolean.