Package org.jfree.chart.renderer.xy
Class XYBezierRenderer
- java.lang.Object
-
- org.jfree.chart.renderer.AbstractRenderer
-
- org.jfree.chart.renderer.xy.AbstractXYItemRenderer
-
- org.jfree.chart.renderer.xy.XYLineAndShapeRenderer
-
- org.jfree.chart.renderer.xy.XYBezierRenderer
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,java.util.EventListener
,AnnotationChangeListener
,LegendItemSource
,XYItemRenderer
,PublicCloneable
public class XYBezierRenderer extends XYLineAndShapeRenderer
A renderer that connects data points with Bezier cubic curves and/or draws shapes at each data point. This renderer is designed for use with theXYPlot
class.- Since:
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
XYBezierRenderer.FillType
An enumeration of the fill types for the renderer.static class
XYBezierRenderer.XYBezierState
Represents state information that applies to a single rendering of a chart.-
Nested classes/interfaces inherited from class org.jfree.chart.renderer.xy.XYLineAndShapeRenderer
XYLineAndShapeRenderer.State
-
-
Field Summary
Fields Modifier and Type Field Description private XYBezierRenderer.FillType
fillType
A flag that can be set to specify to fill the area under the Bezier curve.private GradientPaintTransformer
gradientPaintTransformer
private int
precision
Resolution of Bezier curves (number of line segments between points)private double
tension
Tension defines how sharply does the curve bends-
Fields inherited from class org.jfree.chart.renderer.AbstractRenderer
DEFAULT_ITEM_LABEL_INSETS, DEFAULT_OUTLINE_PAINT, DEFAULT_OUTLINE_STROKE, DEFAULT_PAINT, DEFAULT_SHAPE, DEFAULT_STROKE, DEFAULT_VALUE_LABEL_FONT, DEFAULT_VALUE_LABEL_PAINT, ZERO
-
-
Constructor Summary
Constructors Constructor Description XYBezierRenderer()
Creates a new instance with the precision attribute defaulting to 5, the tension attribute defaulting to 2 and no fill of the area 'under' the Bezier curve.XYBezierRenderer(int precision, double tension)
Creates a new renderer with the specified precision and tension and no fill of the area 'under' (between '0' and) the Bezier curve.XYBezierRenderer(int precision, double tension, XYBezierRenderer.FillType fillType)
Creates a new renderer with the specified precision and specified fill of the area 'under' (between '0' and) the Bezier curve.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addBezierPointsToSeriesPath(java.awt.geom.Point2D[] segmentPoints, XYBezierRenderer.XYBezierState s)
private java.awt.geom.Point2D[]
calcSegmentPointsFinal(java.awt.geom.Point2D[] original3P)
private java.awt.geom.Point2D[]
calcSegmentPointsInitial(java.awt.geom.Point2D[] original3P)
private java.awt.geom.Point2D[]
calculateSegmentPoints(java.awt.geom.Point2D[] original4Points)
private java.awt.geom.Point2D
calcUnitaryVector(java.awt.geom.Point2D pOrigin, java.awt.geom.Point2D pEnd)
protected void
drawPrimaryLineAsPath(XYItemRendererState state, java.awt.Graphics2D g2, XYPlot plot, XYDataset dataset, int pass, int series, int item, ValueAxis xAxis, ValueAxis yAxis, java.awt.geom.Rectangle2D dataArea)
Draws the item (first pass).boolean
equals(java.lang.Object obj)
Tests this renderer for equality with an arbitrary object.XYBezierRenderer.FillType
getFillType()
Returns the type of fill that the renderer draws beneath the curve.private java.awt.geom.Point2D[]
getFinalPoints(XYBezierRenderer.XYBezierState s)
GradientPaintTransformer
getGradientPaintTransformer()
Returns the gradient paint transformer, ornull
.private java.awt.geom.Point2D[]
getInitalPoints(XYBezierRenderer.XYBezierState s)
int
getPrecision()
Returns the number of line segments used to approximate the Bezier curve between data points.double
getTension()
Returns the value of the tension which defines how sharply does the curve bendsXYItemRendererState
initialise(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info)
Initialises the renderer.void
setFillType(XYBezierRenderer.FillType fillType)
Set the fill type and sends aRendererChangeEvent
to all registered listeners.void
setGradientPaintTransformer(GradientPaintTransformer gpt)
Sets the gradient paint transformer and sends aRendererChangeEvent
to all registered listeners.void
setPrecision(int p)
Set the resolution of Bezier curves and sends aRendererChangeEvent
to all registered listeners.void
setTension(double t)
Set the value of the tension which defines how sharply does the curve bends and sends aRendererChangeEvent
to all registered listeners.-
Methods inherited from class org.jfree.chart.renderer.xy.XYLineAndShapeRenderer
clone, drawFirstPassShape, drawItem, drawPrimaryLine, drawSecondaryPass, getDefaultLinesVisible, getDefaultShapesFilled, getDefaultShapesVisible, getDrawOutlines, getDrawSeriesLineAsPath, getItemLineVisible, getItemShapeFilled, getItemShapeVisible, getLegendItem, getLegendLine, getPassCount, getSeriesLinesVisible, getSeriesShapesFilled, getSeriesShapesVisible, getUseFillPaint, getUseOutlinePaint, hashCode, isItemPass, isLinePass, setDefaultLinesVisible, setDefaultShapesFilled, setDefaultShapesVisible, setDrawOutlines, setDrawSeriesLineAsPath, setLegendLine, setSeriesLinesVisible, setSeriesLinesVisible, setSeriesShapesFilled, setSeriesShapesFilled, setSeriesShapesVisible, setSeriesShapesVisible, setUseFillPaint, setUseOutlinePaint
-
Methods inherited from class org.jfree.chart.renderer.xy.AbstractXYItemRenderer
addAnnotation, addAnnotation, addEntity, annotationChanged, beginElementGroup, calculateDomainMarkerTextAnchorPoint, drawAnnotations, drawDomainLine, drawDomainMarker, drawItemLabel, drawRangeLine, drawRangeMarker, fillDomainGridBand, fillRangeGridBand, findDomainBounds, findDomainBounds, findRangeBounds, findRangeBounds, getAnnotations, getDefaultItemLabelGenerator, getDefaultToolTipGenerator, getDrawingSupplier, getItemLabelGenerator, getLegendItemLabelGenerator, getLegendItems, getLegendItemToolTipGenerator, getLegendItemURLGenerator, getPlot, getSeriesItemLabelGenerator, getSeriesToolTipGenerator, getToolTipGenerator, getURLGenerator, lineTo, moveTo, removeAnnotation, removeAnnotations, setDefaultItemLabelGenerator, setDefaultToolTipGenerator, setLegendItemLabelGenerator, setLegendItemToolTipGenerator, setLegendItemURLGenerator, setPlot, setSeriesItemLabelGenerator, setSeriesToolTipGenerator, setURLGenerator, updateCrosshairValues
-
Methods inherited from class org.jfree.chart.renderer.AbstractRenderer
addChangeListener, beginElementGroup, calculateLabelAnchorPoint, clearSeriesPaints, clearSeriesStrokes, endElementGroup, fireChangeEvent, getAutoPopulateSeriesFillPaint, getAutoPopulateSeriesOutlinePaint, getAutoPopulateSeriesOutlineStroke, getAutoPopulateSeriesPaint, getAutoPopulateSeriesShape, getAutoPopulateSeriesStroke, getDataBoundsIncludesVisibleSeriesOnly, getDefaultCreateEntities, getDefaultEntityRadius, getDefaultFillPaint, getDefaultItemLabelFont, getDefaultItemLabelPaint, getDefaultItemLabelsVisible, getDefaultLegendShape, getDefaultLegendTextFont, getDefaultLegendTextPaint, getDefaultNegativeItemLabelPosition, getDefaultOutlinePaint, getDefaultOutlineStroke, getDefaultPaint, getDefaultPositiveItemLabelPosition, getDefaultSeriesVisible, getDefaultSeriesVisibleInLegend, getDefaultShape, getDefaultStroke, getItemCreateEntity, getItemFillPaint, getItemLabelAnchorOffset, getItemLabelFont, getItemLabelInsets, getItemLabelPaint, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getItemVisible, getLegendShape, getLegendTextFont, getLegendTextPaint, getNegativeItemLabelPosition, getPositiveItemLabelPosition, getSeriesCreateEntities, getSeriesFillPaint, getSeriesItemLabelFont, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, getSeriesVisible, getSeriesVisibleInLegend, getTreatLegendShapeAsLine, hasListener, isComputeItemLabelContrastColor, isItemLabelVisible, isSeriesItemLabelsVisible, isSeriesVisible, isSeriesVisibleInLegend, lookupLegendShape, lookupLegendTextFont, lookupLegendTextPaint, lookupSeriesFillPaint, lookupSeriesOutlinePaint, lookupSeriesOutlineStroke, lookupSeriesPaint, lookupSeriesShape, lookupSeriesStroke, notifyListeners, removeChangeListener, setAutoPopulateSeriesFillPaint, setAutoPopulateSeriesOutlinePaint, setAutoPopulateSeriesOutlineStroke, setAutoPopulateSeriesPaint, setAutoPopulateSeriesShape, setAutoPopulateSeriesStroke, setComputeItemLabelContrastColor, setDataBoundsIncludesVisibleSeriesOnly, setDefaultCreateEntities, setDefaultCreateEntities, setDefaultEntityRadius, setDefaultFillPaint, setDefaultFillPaint, setDefaultItemLabelFont, setDefaultItemLabelFont, setDefaultItemLabelPaint, setDefaultItemLabelPaint, setDefaultItemLabelsVisible, setDefaultItemLabelsVisible, setDefaultLegendShape, setDefaultLegendTextFont, setDefaultLegendTextPaint, setDefaultNegativeItemLabelPosition, setDefaultNegativeItemLabelPosition, setDefaultOutlinePaint, setDefaultOutlinePaint, setDefaultOutlineStroke, setDefaultOutlineStroke, setDefaultPaint, setDefaultPaint, setDefaultPositiveItemLabelPosition, setDefaultPositiveItemLabelPosition, setDefaultSeriesVisible, setDefaultSeriesVisible, setDefaultSeriesVisibleInLegend, setDefaultSeriesVisibleInLegend, setDefaultShape, setDefaultShape, setDefaultStroke, setDefaultStroke, setItemLabelAnchorOffset, setItemLabelInsets, setLegendShape, setLegendTextFont, setLegendTextPaint, setSeriesCreateEntities, setSeriesCreateEntities, setSeriesFillPaint, setSeriesFillPaint, setSeriesItemLabelFont, setSeriesItemLabelFont, setSeriesItemLabelPaint, setSeriesItemLabelPaint, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesNegativeItemLabelPosition, setSeriesNegativeItemLabelPosition, setSeriesOutlinePaint, setSeriesOutlinePaint, setSeriesOutlineStroke, setSeriesOutlineStroke, setSeriesPaint, setSeriesPaint, setSeriesPositiveItemLabelPosition, setSeriesPositiveItemLabelPosition, setSeriesShape, setSeriesShape, setSeriesStroke, setSeriesStroke, setSeriesVisible, setSeriesVisible, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setTreatLegendShapeAsLine
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jfree.chart.LegendItemSource
getLegendItems
-
Methods inherited from interface org.jfree.chart.renderer.xy.XYItemRenderer
addAnnotation, addAnnotation, addChangeListener, drawAnnotations, drawDomainLine, drawDomainMarker, drawRangeLine, drawRangeMarker, fillDomainGridBand, fillRangeGridBand, findDomainBounds, findRangeBounds, getDefaultCreateEntities, getDefaultFillPaint, getDefaultItemLabelFont, getDefaultItemLabelGenerator, getDefaultItemLabelPaint, getDefaultItemLabelsVisible, getDefaultNegativeItemLabelPosition, getDefaultOutlinePaint, getDefaultOutlineStroke, getDefaultPaint, getDefaultPositiveItemLabelPosition, getDefaultSeriesVisible, getDefaultSeriesVisibleInLegend, getDefaultShape, getDefaultStroke, getDefaultToolTipGenerator, getItemCreateEntity, getItemFillPaint, getItemLabelFont, getItemLabelGenerator, getItemLabelPaint, getItemOutlinePaint, getItemOutlineStroke, getItemPaint, getItemShape, getItemStroke, getItemVisible, getLegendItemLabelGenerator, getNegativeItemLabelPosition, getPlot, getPositiveItemLabelPosition, getSeriesCreateEntities, getSeriesFillPaint, getSeriesItemLabelFont, getSeriesItemLabelGenerator, getSeriesItemLabelPaint, getSeriesNegativeItemLabelPosition, getSeriesOutlinePaint, getSeriesOutlineStroke, getSeriesPaint, getSeriesPositiveItemLabelPosition, getSeriesShape, getSeriesStroke, getSeriesToolTipGenerator, getSeriesVisible, getSeriesVisibleInLegend, getToolTipGenerator, getURLGenerator, isItemLabelVisible, isSeriesItemLabelsVisible, isSeriesVisible, isSeriesVisibleInLegend, removeAnnotation, removeAnnotations, removeChangeListener, setDefaultCreateEntities, setDefaultCreateEntities, setDefaultFillPaint, setDefaultFillPaint, setDefaultItemLabelFont, setDefaultItemLabelGenerator, setDefaultItemLabelPaint, setDefaultItemLabelsVisible, setDefaultItemLabelsVisible, setDefaultNegativeItemLabelPosition, setDefaultNegativeItemLabelPosition, setDefaultOutlinePaint, setDefaultOutlinePaint, setDefaultOutlineStroke, setDefaultOutlineStroke, setDefaultPaint, setDefaultPaint, setDefaultPositiveItemLabelPosition, setDefaultPositiveItemLabelPosition, setDefaultSeriesVisible, setDefaultSeriesVisible, setDefaultSeriesVisibleInLegend, setDefaultSeriesVisibleInLegend, setDefaultShape, setDefaultShape, setDefaultStroke, setDefaultStroke, setDefaultToolTipGenerator, setLegendItemLabelGenerator, setPlot, setSeriesCreateEntities, setSeriesCreateEntities, setSeriesFillPaint, setSeriesFillPaint, setSeriesItemLabelFont, setSeriesItemLabelGenerator, setSeriesItemLabelPaint, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesItemLabelsVisible, setSeriesNegativeItemLabelPosition, setSeriesNegativeItemLabelPosition, setSeriesOutlinePaint, setSeriesOutlinePaint, setSeriesOutlineStroke, setSeriesOutlineStroke, setSeriesPaint, setSeriesPaint, setSeriesPositiveItemLabelPosition, setSeriesPositiveItemLabelPosition, setSeriesShape, setSeriesShape, setSeriesStroke, setSeriesStroke, setSeriesToolTipGenerator, setSeriesVisible, setSeriesVisible, setSeriesVisibleInLegend, setSeriesVisibleInLegend, setURLGenerator
-
-
-
-
Field Detail
-
precision
private int precision
Resolution of Bezier curves (number of line segments between points)
-
tension
private double tension
Tension defines how sharply does the curve bends
-
fillType
private XYBezierRenderer.FillType fillType
A flag that can be set to specify to fill the area under the Bezier curve.
-
gradientPaintTransformer
private GradientPaintTransformer gradientPaintTransformer
-
-
Constructor Detail
-
XYBezierRenderer
public XYBezierRenderer()
Creates a new instance with the precision attribute defaulting to 5, the tension attribute defaulting to 2 and no fill of the area 'under' the Bezier curve.
-
XYBezierRenderer
public XYBezierRenderer(int precision, double tension)
Creates a new renderer with the specified precision and tension and no fill of the area 'under' (between '0' and) the Bezier curve.- Parameters:
precision
- the number of points between data items.tension
- value to define how sharply the curve bends
-
XYBezierRenderer
public XYBezierRenderer(int precision, double tension, XYBezierRenderer.FillType fillType)
Creates a new renderer with the specified precision and specified fill of the area 'under' (between '0' and) the Bezier curve.- Parameters:
precision
- the number of points between data items.tension
- value to define how sharply the Bezier curve bendsfillType
- the type of fill beneath the curve (null
not permitted).- Since:
- 1.0.17
-
-
Method Detail
-
getPrecision
public int getPrecision()
Returns the number of line segments used to approximate the Bezier curve between data points.- Returns:
- The number of line segments.
- See Also:
setPrecision(int)
-
setPrecision
public void setPrecision(int p)
Set the resolution of Bezier curves and sends aRendererChangeEvent
to all registered listeners.- Parameters:
p
- number of line segments between points (must be > 0).- See Also:
getPrecision()
-
getTension
public double getTension()
Returns the value of the tension which defines how sharply does the curve bends- Returns:
- The value of tesion.
- See Also:
setTension(double)
-
setTension
public void setTension(double t)
Set the value of the tension which defines how sharply does the curve bends and sends aRendererChangeEvent
to all registered listeners.- Parameters:
t
- value of tension (must be > 0).- See Also:
getTension()
-
getFillType
public XYBezierRenderer.FillType getFillType()
Returns the type of fill that the renderer draws beneath the curve.- Returns:
- The type of fill (never
null
). - Since:
- 1.0.17
- See Also:
setFillType(FillType)
-
setFillType
public void setFillType(XYBezierRenderer.FillType fillType)
Set the fill type and sends aRendererChangeEvent
to all registered listeners.- Parameters:
fillType
- the fill type (null
not permitted).- Since:
- 1.0.17
- See Also:
getFillType()
-
getGradientPaintTransformer
public GradientPaintTransformer getGradientPaintTransformer()
Returns the gradient paint transformer, ornull
.- Returns:
- The gradient paint transformer (possibly
null
). - Since:
- 1.0.17
-
setGradientPaintTransformer
public void setGradientPaintTransformer(GradientPaintTransformer gpt)
Sets the gradient paint transformer and sends aRendererChangeEvent
to all registered listeners.- Parameters:
gpt
- the transformer (null
permitted).- Since:
- 1.0.17
-
initialise
public XYItemRendererState initialise(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info)
Initialises the renderer.This method will be called before the first item is rendered, giving the renderer an opportunity to initialise any state information it wants to maintain. The renderer can do nothing if it chooses.
- Specified by:
initialise
in interfaceXYItemRenderer
- Overrides:
initialise
in classXYLineAndShapeRenderer
- Parameters:
g2
- the graphics device.dataArea
- the area inside the axes.plot
- the plot.data
- the data.info
- an optional info collection object to return data back to the caller.- Returns:
- The renderer state.
-
drawPrimaryLineAsPath
protected void drawPrimaryLineAsPath(XYItemRendererState state, java.awt.Graphics2D g2, XYPlot plot, XYDataset dataset, int pass, int series, int item, ValueAxis xAxis, ValueAxis yAxis, java.awt.geom.Rectangle2D dataArea)
Draws the item (first pass). This method draws the lines connecting the items. Instead of drawing separate lines, a GeneralPath is constructed and drawn at the end of the series painting.- Overrides:
drawPrimaryLineAsPath
in classXYLineAndShapeRenderer
- Parameters:
g2
- the graphics device.state
- the renderer state.plot
- the plot (can be used to obtain standard color information etc).dataset
- the dataset.pass
- the pass.series
- the series index (zero-based).item
- the item index (zero-based).xAxis
- the domain axis.yAxis
- the range axis.dataArea
- the area within which the data is being drawn.
-
addBezierPointsToSeriesPath
private void addBezierPointsToSeriesPath(java.awt.geom.Point2D[] segmentPoints, XYBezierRenderer.XYBezierState s)
-
getFinalPoints
private java.awt.geom.Point2D[] getFinalPoints(XYBezierRenderer.XYBezierState s)
-
getInitalPoints
private java.awt.geom.Point2D[] getInitalPoints(XYBezierRenderer.XYBezierState s)
-
calculateSegmentPoints
private java.awt.geom.Point2D[] calculateSegmentPoints(java.awt.geom.Point2D[] original4Points)
-
calcSegmentPointsInitial
private java.awt.geom.Point2D[] calcSegmentPointsInitial(java.awt.geom.Point2D[] original3P)
-
calcSegmentPointsFinal
private java.awt.geom.Point2D[] calcSegmentPointsFinal(java.awt.geom.Point2D[] original3P)
-
calcUnitaryVector
private java.awt.geom.Point2D calcUnitaryVector(java.awt.geom.Point2D pOrigin, java.awt.geom.Point2D pEnd)
-
equals
public boolean equals(java.lang.Object obj)
Tests this renderer for equality with an arbitrary object.- Overrides:
equals
in classXYLineAndShapeRenderer
- Parameters:
obj
- the object (null
permitted).- Returns:
- A boolean.
-
-