Class Star2D

java.lang.Object
org.jdesktop.swingx.geom.Star2D
All Implemented Interfaces:
Shape

public class Star2D extends Object implements Shape

This class provides a star shape. A star is defined by two radii and a number of branches. Each branch spans between the two radii. The inner radius is the distance between the center of the star and the origin of the branches. The outer radius is the distance between the center of the star and the tips of the branches.

  • Field Details

    • starShape

      private Shape starShape
    • x

      private double x
    • y

      private double y
    • innerRadius

      private double innerRadius
    • outerRadius

      private double outerRadius
    • branchesCount

      private int branchesCount
  • Constructor Details

    • Star2D

      public Star2D(double x, double y, double innerRadius, double outerRadius, int branchesCount)

      Creates a new star whose center is located at the specified x and y coordinates. The number of branches and their length can be specified.

      Parameters:
      x - the location of the star center
      y - the location of the star center
      innerRadius - the distance between the center of the star and the origin of the branches
      outerRadius - the distance between the center of the star and the tip of the branches
      branchesCount - the number of branches in this star; must be >= 3
      Throws:
      IllegalArgumentException - if branchesCount is invalid input: '<' 3 or if innerRadius is >= outerRadius
  • Method Details

    • generateStar

      private static Shape generateStar(double x, double y, double innerRadius, double outerRadius, int branchesCount)
    • setInnerRadius

      public void setInnerRadius(double innerRadius)

      Sets the inner radius of the star, that is the distance between its center and the origin of the branches. The inner radius must always be lower than the outer radius.

      Parameters:
      innerRadius - the distance between the center of the star and the origin of the branches
      Throws:
      IllegalArgumentException - if the inner radius is >= outer radius
    • setX

      public void setX(double x)

      Sets location of the center of the star.

      Parameters:
      x - the x location of the center of the star
    • setY

      public void setY(double y)

      Sets the location of the center of the star.

      Parameters:
      y - the x location of the center of the star
    • setOuterRadius

      public void setOuterRadius(double outerRadius)

      Sets the outer radius of the star, that is the distance between its center and the tips of the branches. The outer radius must always be greater than the inner radius.

      Parameters:
      outerRadius - the distance between the center of the star and the tips of the branches
      Throws:
      IllegalArgumentException - if the inner radius is >= outer radius
    • setBranchesCount

      public void setBranchesCount(int branchesCount)

      Sets the number branches of the star. A star must always have at least 3 branches.

      Parameters:
      branchesCount - the number of branches
      Throws:
      IllegalArgumentException - if branchesCount is <=2
    • getX

      public double getX()

      Returns the location of the center of star.

      Returns:
      the x coordinate of the center of the star
    • getY

      public double getY()

      Returns the location of the center of star.

      Returns:
      the y coordinate of the center of the star
    • getInnerRadius

      public double getInnerRadius()

      Returns the distance between the center of the star and the origin of the branches.

      Returns:
      the inner radius of the star
    • getOuterRadius

      public double getOuterRadius()

      Returns the distance between the center of the star and the tips of the branches.

      Returns:
      the outer radius of the star
    • getBranchesCount

      public int getBranchesCount()

      Returns the number of branches of the star.

      Returns:
      the number of branches, always >= 3
    • getBounds

      public Rectangle getBounds()
      Specified by:
      getBounds in interface Shape
    • getBounds2D

      public Rectangle2D getBounds2D()
      Specified by:
      getBounds2D in interface Shape
    • contains

      public boolean contains(double x, double y)
      Specified by:
      contains in interface Shape
    • contains

      public boolean contains(Point2D p)
      Specified by:
      contains in interface Shape
    • intersects

      public boolean intersects(double x, double y, double w, double h)
      Specified by:
      intersects in interface Shape
    • intersects

      public boolean intersects(Rectangle2D r)
      Specified by:
      intersects in interface Shape
    • contains

      public boolean contains(double x, double y, double w, double h)
      Specified by:
      contains in interface Shape
    • contains

      public boolean contains(Rectangle2D r)
      Specified by:
      contains in interface Shape
    • getPathIterator

      public PathIterator getPathIterator(AffineTransform at)
      Specified by:
      getPathIterator in interface Shape
    • getPathIterator

      public PathIterator getPathIterator(AffineTransform at, double flatness)
      Specified by:
      getPathIterator in interface Shape