- All Implemented Interfaces:
Graph.Graphic
- Enclosing class:
- Graphs
To improve the visual appearance, if radial lines near the origin would intersect due to their line thickness, the angular separation will be increased near the origin. For this to be possible the product of the angular separation in degrees with 2, 3, or 5 must be a divisor of 90 degrees. The angular separation in degrees is restricted to integer values.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionConstructor.PolarGrid
(double radialSpacing, int angularSpacing) Constructor specifying a radial spacing and an angular spacing.PolarGrid
(double radialSpacing, int angularSpacing, double xo, double yo, boolean fractional) Constructor specifying a radial spacing and an angular spacing. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addTo
(Graph g, Graphics2D g2d, Graphics2D g2dGCS) Add this object to a graph.int
Get the angular spacing.getColor()
Get the color used to draw lines representing polar coordinates.double
Get the radial spacing.double
Get the stroke width for lines drawn to represent polar coordinates.double
Get the X origin for polar coordinates.double
Get the Y origin for polar coordinates.boolean
Determine if the origin is located by its absolute position.boolean
Determine if the origin is located by its fractional position.void
setAngularSpacing
(int spacing) Set the angular spacing between radial lines used to represent polar coordinates.void
Set the color used to draw lines representing polar coordinates.void
setOrigin
(double xo, double yo, boolean fractional) Set the origin for polar coordinates.void
setRadialSpacing
(double spacing) Set the radial spacing for the circles used to represent polar coordinates.void
setStrokeWidth
(double width) Set the stroke width for lines drawn to represent polar coordinates.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.bzdev.graphs.Graph.Graphic
boundingBox
-
Field Details
-
LINE_COLOR_CSS
The default line color for a polar-coordinate grid, provided as a CSS specification.- See Also:
-
LINE_COLOR
The default line color for a polar-coordinate grid. -
STROKE_WIDTH
public static final double STROKE_WIDTHThe default stroke width for a polar-coordinate grid.- See Also:
-
-
Constructor Details
-
PolarGrid
public PolarGrid()Constructor. -
PolarGrid
public PolarGrid(double radialSpacing, int angularSpacing) Constructor specifying a radial spacing and an angular spacing.- Parameters:
radialSpacing
- the radial spacing in GCS units.angularSpacing
- the angle in degrees
-
PolarGrid
public PolarGrid(double radialSpacing, int angularSpacing, double xo, double yo, boolean fractional) Constructor specifying a radial spacing and an angular spacing.- Parameters:
radialSpacing
- the radial spacing in GCS units.angularSpacing
- the angle in degreesxo
- a fraction in the range [0,1] giving the X coordinate of the origin as a fraction of the value betweengraph.getXLower()
andgarph.getXUpper()
when the argumentfractional
is true; the X coordinate in GCS units when the argumentfractional
is falseyo
- a fraction in the range [0,1] giving the Y coordinate of the origin as a fraction of the value betweengraph.getXLower()
andgarph.getXUpper()
when the argumentfractional
is true; the X coordinate in GCS units when the argumentfractional
is falsefractional
- true if fractional units are used; false if absolute units are used
-
-
Method Details
-
getRadialSpacing
public double getRadialSpacing()Get the radial spacing. The radial spacing is the spacing between concentric circles drawn to show polar coordinates.- Returns:
- the radial spacing in GCS (Graph Coordinate Space) units; 0.0 indicates the default behavior
-
getAngularSpacing
public int getAngularSpacing()Get the angular spacing. The angular spacing is the spacing between adjacent radial lines drawn to show polar coordinates.- Returns:
- the angular spacing in degrees.
-
hasFractionalOrigin
public boolean hasFractionalOrigin()Determine if the origin is located by its fractional position. When true,getXOrigin()
will return a fraction f such that the X origin is located atgraph.getXLower()*(1.0-f) + graph.getXUpper()*f
andgetYOrigin()
will return a faction f such that the Y origin is located atgraph.getXLower()*(1.0-f) + graph.getXUpper()*f
. When false, the x and y GCS (Graph Coordinate Space) coordinates of the origin are the values returned bygetXOrigin()
andgetYOrigin()
respectively.- Returns:
- true if the origin's location is specified by its fractional position in the graph; false if the origin is located by its absolute position using GCS coordinates.
- See Also:
-
hasAbsoluteOrigin
public boolean hasAbsoluteOrigin()Determine if the origin is located by its absolute position. When true, the x and y GCS (Graph Coordinate Space) coordinates of the origin are the values returned bygetXOrigin()
andgetXOrigin()
respectively. When false,getXOrigin()
will return a fraction f such that the X origin on a graph is located atgraph.getXLower()*(1.0-f) + graph.getXUpper()*f
andgetYOrigin()
will return a faction f such that the Y origin is located atgraph.getXLower()*(1.0-f) + graph.getXUpper()*f
.- Returns:
- true if the origin is located by its absolute position using GCS coordinates; false if the origin's location is specified by its fractional position in the graph
- See Also:
-
getXOrigin
public double getXOrigin()Get the X origin for polar coordinates. The interpretation of the value returned depends on the value returned byhasFractionalOrigin()
orhasAbsoluteOrigin()
. WhenhasFractionalOrigin()
returns true, the value returned is the fraction f such that the X origin on a graph is located atgraph.getXLower()*(1.0-f) + graph.getXUpper()*f
in graph coordinate space units. WhenhasAbsoluteOrigin()
returns true, the value returned is the X coordinate of the origin in GCS units.- Returns:
- the X origin.
-
getYOrigin
public double getYOrigin()Get the Y origin for polar coordinates. The interpretation of the value returned depends on the value returned byhasFractionalOrigin()
orhasAbsoluteOrigin()
. WhenhasFractionalOrigin()
returns true, the value returned is the fraction f such that the Y origin on a graph is located atgraph.getYLower()*(1.0-f) + graph.getYUpper()*f
in graph coordinate space units. WhenhasAbsoluteOrigin()
returns true, the value returned is the Y coordinate of the origin in GCS units.- Returns:
- the Y origin.
-
getColor
Get the color used to draw lines representing polar coordinates.- Returns:
- the line color
-
getStrokeWidth
public double getStrokeWidth()Get the stroke width for lines drawn to represent polar coordinates.- Returns:
- the line width.
-
setOrigin
public void setOrigin(double xo, double yo, boolean fractional) Set the origin for polar coordinates. When fractional units are used, xo is a fraction f such that the X origin is located atgraph.getXLower()*(1.0-f) + graph.getXUpper()*f
and yo is a fraction f such that the Y origin is located atgraph.getYLower()*(1.0-f) + graph.getYUpper()*f
. When absolute units are used, (xo, yo) is the location of the polar coordinate system's origin in GCS.- Parameters:
xo
- a fraction in the range [0,1] giving the X coordinate of the origin as a fraction of the value betweengraph.getXLower()
andgarph.getXUpper()
when the argumentfractional
is true; the X coordinate in GCS units when the argumentfractional
is falseyo
- a fraction in the range [0,1] giving the Y coordinate of the origin as a fraction of the value betweengraph.getXLower()
andgarph.getXUpper()
when the argumentfractional
is true; the X coordinate in GCS units when the argumentfractional
is falsefractional
- true if fractional units are used; false if absolute units are used
-
setColor
Set the color used to draw lines representing polar coordinates.- Parameters:
lineColor
- the line color; null for a default
-
setStrokeWidth
public void setStrokeWidth(double width) Set the stroke width for lines drawn to represent polar coordinates.- Parameters:
width
- the stroke width; 0.0 or negative for a default
-
setRadialSpacing
public void setRadialSpacing(double spacing) Set the radial spacing for the circles used to represent polar coordinates.- Parameters:
spacing
- the radial spacing in GCS units; 0.0 or negative for the default behavior
-
setAngularSpacing
public void setAngularSpacing(int spacing) Set the angular spacing between radial lines used to represent polar coordinates. This value, when multiplied by 2, 3, or 5, should be a divisor of 90.- Parameters:
spacing
- the angle in degrees
-
addTo
Description copied from interface:Graph.Graphic
Add this object to a graph. The drawing operation is assumed to be a complex one that might involve fills, etc.Any modifications to g2d or g2dGCS made by an implementation of this method should be undone before this method returns. For classes provided by the org.bzdev.anim2d package, such modifications must be undone before this method returns.
Two graphics contexts are provided as arguments. g2d will typically be used as the first argument to the graph's draw or fill methods. In this case, the shape of an object is described in graph coordinate space but the widths of strokes drawn by fill operations, gradient paint, etc., have user-space units. The result is that line widths as they appear in an image are not sensitive to the mapping from graph coordinate space to user space. One should use the draw and fill methods specified by
Graph
, using g2d as their first argument. By contrast, if a line width, etc., should be in graph-coordinate space units, one can use the g2dGCS argument directly. This will rarely be done when plotting a graph but is useful in animations.- Specified by:
addTo
in interfaceGraph.Graphic
- Parameters:
g
- the graph on which this object should be drawng2d
- the user-space Graphics2D to use to draw the Graphicg2dGCS
- the graph-coordinate space Graphics2D to use to draw the Graphic
-