Java Code Examples for java.awt.geom.Line2D#getBounds()
The following examples show how to use
java.awt.geom.Line2D#getBounds() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: DropGlassPane.java From netbeans with Apache License 2.0 | 5 votes |
/** Set drop line. Given line is used by paint method. * @param line drop line */ public void setDropLine(Line2D line) { if( !isValid() ) return; if( null != prevLineRect && ((null != line && (!prevLineRect.contains( line.getP1() ) || !prevLineRect.contains( line.getP2() ))) || null == line) ) { repaint( prevLineRect ); } this.line = line; Rectangle newLineRect = null; if( null != this.line ) { checkLineBounds( this.line ); newLineRect = line.getBounds(); newLineRect.grow( 5, 5 ); } if( null != newLineRect && !newLineRect.equals( prevLineRect ) ) { repaint( newLineRect ); } prevLineRect = newLineRect; }
Example 2
Source File: CrosshairOverlay.java From openstock with GNU General Public License v3.0 | 4 votes |
/** * Calculates the anchor point for a label. * * @param line the line for the crosshair. * @param anchor the anchor point. * @param deltaX the x-offset. * @param deltaY the y-offset. * * @return The anchor point. */ private Point2D calculateLabelPoint(Line2D line, RectangleAnchor anchor, double deltaX, double deltaY) { double x, y; boolean left = (anchor == RectangleAnchor.BOTTOM_LEFT || anchor == RectangleAnchor.LEFT || anchor == RectangleAnchor.TOP_LEFT); boolean right = (anchor == RectangleAnchor.BOTTOM_RIGHT || anchor == RectangleAnchor.RIGHT || anchor == RectangleAnchor.TOP_RIGHT); boolean top = (anchor == RectangleAnchor.TOP_LEFT || anchor == RectangleAnchor.TOP || anchor == RectangleAnchor.TOP_RIGHT); boolean bottom = (anchor == RectangleAnchor.BOTTOM_LEFT || anchor == RectangleAnchor.BOTTOM || anchor == RectangleAnchor.BOTTOM_RIGHT); Rectangle rect = line.getBounds(); // we expect the line to be vertical or horizontal if (line.getX1() == line.getX2()) { // vertical x = line.getX1(); y = (line.getY1() + line.getY2()) / 2.0; if (left) { x = x - deltaX; } if (right) { x = x + deltaX; } if (top) { y = Math.min(line.getY1(), line.getY2()) + deltaY; } if (bottom) { y = Math.max(line.getY1(), line.getY2()) - deltaY; } } else { // horizontal x = (line.getX1() + line.getX2()) / 2.0; y = line.getY1(); if (left) { x = Math.min(line.getX1(), line.getX2()) + deltaX; } if (right) { x = Math.max(line.getX1(), line.getX2()) - deltaX; } if (top) { y = y - deltaY; } if (bottom) { y = y + deltaY; } } return new Point2D.Double(x, y); }
Example 3
Source File: CrosshairOverlay.java From ccu-historian with GNU General Public License v3.0 | 4 votes |
/** * Calculates the anchor point for a label. * * @param line the line for the crosshair. * @param anchor the anchor point. * @param deltaX the x-offset. * @param deltaY the y-offset. * * @return The anchor point. */ private Point2D calculateLabelPoint(Line2D line, RectangleAnchor anchor, double deltaX, double deltaY) { double x, y; boolean left = (anchor == RectangleAnchor.BOTTOM_LEFT || anchor == RectangleAnchor.LEFT || anchor == RectangleAnchor.TOP_LEFT); boolean right = (anchor == RectangleAnchor.BOTTOM_RIGHT || anchor == RectangleAnchor.RIGHT || anchor == RectangleAnchor.TOP_RIGHT); boolean top = (anchor == RectangleAnchor.TOP_LEFT || anchor == RectangleAnchor.TOP || anchor == RectangleAnchor.TOP_RIGHT); boolean bottom = (anchor == RectangleAnchor.BOTTOM_LEFT || anchor == RectangleAnchor.BOTTOM || anchor == RectangleAnchor.BOTTOM_RIGHT); Rectangle rect = line.getBounds(); // we expect the line to be vertical or horizontal if (line.getX1() == line.getX2()) { // vertical x = line.getX1(); y = (line.getY1() + line.getY2()) / 2.0; if (left) { x = x - deltaX; } if (right) { x = x + deltaX; } if (top) { y = Math.min(line.getY1(), line.getY2()) + deltaY; } if (bottom) { y = Math.max(line.getY1(), line.getY2()) - deltaY; } } else { // horizontal x = (line.getX1() + line.getX2()) / 2.0; y = line.getY1(); if (left) { x = Math.min(line.getX1(), line.getX2()) + deltaX; } if (right) { x = Math.max(line.getX1(), line.getX2()) - deltaX; } if (top) { y = y - deltaY; } if (bottom) { y = y + deltaY; } } return new Point2D.Double(x, y); }
Example 4
Source File: CrosshairOverlay.java From SIMVA-SoS with Apache License 2.0 | 4 votes |
/** * Calculates the anchor point for a label. * * @param line the line for the crosshair. * @param anchor the anchor point. * @param deltaX the x-offset. * @param deltaY the y-offset. * * @return The anchor point. */ private Point2D calculateLabelPoint(Line2D line, RectangleAnchor anchor, double deltaX, double deltaY) { double x, y; boolean left = (anchor == RectangleAnchor.BOTTOM_LEFT || anchor == RectangleAnchor.LEFT || anchor == RectangleAnchor.TOP_LEFT); boolean right = (anchor == RectangleAnchor.BOTTOM_RIGHT || anchor == RectangleAnchor.RIGHT || anchor == RectangleAnchor.TOP_RIGHT); boolean top = (anchor == RectangleAnchor.TOP_LEFT || anchor == RectangleAnchor.TOP || anchor == RectangleAnchor.TOP_RIGHT); boolean bottom = (anchor == RectangleAnchor.BOTTOM_LEFT || anchor == RectangleAnchor.BOTTOM || anchor == RectangleAnchor.BOTTOM_RIGHT); Rectangle rect = line.getBounds(); // we expect the line to be vertical or horizontal if (line.getX1() == line.getX2()) { // vertical x = line.getX1(); y = (line.getY1() + line.getY2()) / 2.0; if (left) { x = x - deltaX; } if (right) { x = x + deltaX; } if (top) { y = Math.min(line.getY1(), line.getY2()) + deltaY; } if (bottom) { y = Math.max(line.getY1(), line.getY2()) - deltaY; } } else { // horizontal x = (line.getX1() + line.getX2()) / 2.0; y = line.getY1(); if (left) { x = Math.min(line.getX1(), line.getX2()) + deltaX; } if (right) { x = Math.max(line.getX1(), line.getX2()) - deltaX; } if (top) { y = y - deltaY; } if (bottom) { y = y + deltaY; } } return new Point2D.Double(x, y); }
Example 5
Source File: CrosshairOverlay.java From ECG-Viewer with GNU General Public License v2.0 | 4 votes |
/** * Calculates the anchor point for a label. * * @param line the line for the crosshair. * @param anchor the anchor point. * @param deltaX the x-offset. * @param deltaY the y-offset. * * @return The anchor point. */ private Point2D calculateLabelPoint(Line2D line, RectangleAnchor anchor, double deltaX, double deltaY) { double x, y; boolean left = (anchor == RectangleAnchor.BOTTOM_LEFT || anchor == RectangleAnchor.LEFT || anchor == RectangleAnchor.TOP_LEFT); boolean right = (anchor == RectangleAnchor.BOTTOM_RIGHT || anchor == RectangleAnchor.RIGHT || anchor == RectangleAnchor.TOP_RIGHT); boolean top = (anchor == RectangleAnchor.TOP_LEFT || anchor == RectangleAnchor.TOP || anchor == RectangleAnchor.TOP_RIGHT); boolean bottom = (anchor == RectangleAnchor.BOTTOM_LEFT || anchor == RectangleAnchor.BOTTOM || anchor == RectangleAnchor.BOTTOM_RIGHT); Rectangle rect = line.getBounds(); // we expect the line to be vertical or horizontal if (line.getX1() == line.getX2()) { // vertical x = line.getX1(); y = (line.getY1() + line.getY2()) / 2.0; if (left) { x = x - deltaX; } if (right) { x = x + deltaX; } if (top) { y = Math.min(line.getY1(), line.getY2()) + deltaY; } if (bottom) { y = Math.max(line.getY1(), line.getY2()) - deltaY; } } else { // horizontal x = (line.getX1() + line.getX2()) / 2.0; y = line.getY1(); if (left) { x = Math.min(line.getX1(), line.getX2()) + deltaX; } if (right) { x = Math.max(line.getX1(), line.getX2()) - deltaX; } if (top) { y = y - deltaY; } if (bottom) { y = y + deltaY; } } return new Point2D.Double(x, y); }
Example 6
Source File: CrosshairOverlay.java From astor with GNU General Public License v2.0 | 4 votes |
/** * Calculates the anchor point for a label. * * @param line the line for the crosshair. * @param anchor the anchor point. * @param deltaX the x-offset. * @param deltaY the y-offset. * * @return The anchor point. */ private Point2D calculateLabelPoint(Line2D line, RectangleAnchor anchor, double deltaX, double deltaY) { double x = 0.0; double y = 0.0; boolean left = (anchor == RectangleAnchor.BOTTOM_LEFT || anchor == RectangleAnchor.LEFT || anchor == RectangleAnchor.TOP_LEFT); boolean right = (anchor == RectangleAnchor.BOTTOM_RIGHT || anchor == RectangleAnchor.RIGHT || anchor == RectangleAnchor.TOP_RIGHT); boolean top = (anchor == RectangleAnchor.TOP_LEFT || anchor == RectangleAnchor.TOP || anchor == RectangleAnchor.TOP_RIGHT); boolean bottom = (anchor == RectangleAnchor.BOTTOM_LEFT || anchor == RectangleAnchor.BOTTOM || anchor == RectangleAnchor.BOTTOM_RIGHT); Rectangle rect = line.getBounds(); // we expect the line to be vertical or horizontal if (line.getX1() == line.getX2()) { // vertical x = line.getX1(); y = (line.getY1() + line.getY2()) / 2.0; if (left) { x = x - deltaX; } if (right) { x = x + deltaX; } if (top) { y = Math.min(line.getY1(), line.getY2()) + deltaY; } if (bottom) { y = Math.max(line.getY1(), line.getY2()) - deltaY; } } else { // horizontal x = (line.getX1() + line.getX2()) / 2.0; y = line.getY1(); if (left) { x = Math.min(line.getX1(), line.getX2()) + deltaX; } if (right) { x = Math.max(line.getX1(), line.getX2()) - deltaX; } if (top) { y = y - deltaY; } if (bottom) { y = y + deltaY; } } return new Point2D.Double(x, y); }
Example 7
Source File: YIntervalRenderer.java From opensim-gui with Apache License 2.0 | 4 votes |
/** * Draws the visual representation of a single data item. * * @param g2 the graphics device. * @param state the renderer state. * @param dataArea the area within which the plot is being drawn. * @param info collects information about the drawing. * @param plot the plot (can be used to obtain standard color * information etc). * @param domainAxis the domain axis. * @param rangeAxis the range axis. * @param dataset the dataset. * @param series the series index (zero-based). * @param item the item index (zero-based). * @param crosshairState crosshair information for the plot * (<code>null</code> permitted). * @param pass the pass index (ignored here). */ public void drawItem(Graphics2D g2, XYItemRendererState state, Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairState crosshairState, int pass) { // setup for collecting optional entity info... Shape entityArea = null; EntityCollection entities = null; if (info != null) { entities = info.getOwner().getEntityCollection(); } IntervalXYDataset intervalDataset = (IntervalXYDataset) dataset; double x = intervalDataset.getXValue(series, item); double yLow = intervalDataset.getStartYValue(series, item); double yHigh = intervalDataset.getEndYValue(series, item); RectangleEdge xAxisLocation = plot.getDomainAxisEdge(); RectangleEdge yAxisLocation = plot.getRangeAxisEdge(); double xx = domainAxis.valueToJava2D(x, dataArea, xAxisLocation); double yyLow = rangeAxis.valueToJava2D(yLow, dataArea, yAxisLocation); double yyHigh = rangeAxis.valueToJava2D(yHigh, dataArea, yAxisLocation); Paint p = getItemPaint(series, item); Stroke s = getItemStroke(series, item); Line2D line = null; Shape shape = getItemShape(series, item); Shape top = null; Shape bottom = null; PlotOrientation orientation = plot.getOrientation(); if (orientation == PlotOrientation.HORIZONTAL) { line = new Line2D.Double(yyLow, xx, yyHigh, xx); top = ShapeUtilities.createTranslatedShape(shape, yyHigh, xx); bottom = ShapeUtilities.createTranslatedShape(shape, yyLow, xx); } else if (orientation == PlotOrientation.VERTICAL) { line = new Line2D.Double(xx, yyLow, xx, yyHigh); top = ShapeUtilities.createTranslatedShape(shape, xx, yyHigh); bottom = ShapeUtilities.createTranslatedShape(shape, xx, yyLow); } g2.setPaint(p); g2.setStroke(s); g2.draw(line); g2.fill(top); g2.fill(bottom); // add an entity for the item... if (entities != null) { if (entityArea == null) { entityArea = line.getBounds(); } String tip = null; XYToolTipGenerator generator = getToolTipGenerator(series, item); if (generator != null) { tip = generator.generateToolTip(dataset, series, item); } String url = null; if (getURLGenerator() != null) { url = getURLGenerator().generateURL(dataset, series, item); } XYItemEntity entity = new XYItemEntity( entityArea, dataset, series, item, tip, url ); entities.add(entity); } }
Example 8
Source File: LevelRenderer.java From opensim-gui with Apache License 2.0 | 4 votes |
/** * Draws the bar for a single (series, category) data item. * * @param g2 the graphics device. * @param state the renderer state. * @param dataArea the data area. * @param plot the plot. * @param domainAxis the domain axis. * @param rangeAxis the range axis. * @param dataset the dataset. * @param row the row index (zero-based). * @param column the column index (zero-based). * @param pass the pass index. */ public void drawItem(Graphics2D g2, CategoryItemRendererState state, Rectangle2D dataArea, CategoryPlot plot, CategoryAxis domainAxis, ValueAxis rangeAxis, CategoryDataset dataset, int row, int column, int pass) { // nothing is drawn for null values... Number dataValue = dataset.getValue(row, column); if (dataValue == null) { return; } double value = dataValue.doubleValue(); PlotOrientation orientation = plot.getOrientation(); double barW0 = calculateBarW0(plot, orientation, dataArea, domainAxis, state, row, column); RectangleEdge edge = plot.getRangeAxisEdge(); double barL = rangeAxis.valueToJava2D(value, dataArea, edge); // draw the bar... Line2D line = null; double x = 0.0; double y = 0.0; if (orientation == PlotOrientation.HORIZONTAL) { x = barL; y = barW0 + state.getBarWidth() / 2.0; line = new Line2D.Double(barL, barW0, barL, barW0 + state.getBarWidth()); } else { x = barW0 + state.getBarWidth() / 2.0; y = barL; line = new Line2D.Double(barW0, barL, barW0 + state.getBarWidth(), barL); } Stroke itemStroke = getItemStroke(row, column); Paint itemPaint = getItemPaint(row, column); g2.setStroke(itemStroke); g2.setPaint(itemPaint); g2.draw(line); CategoryItemLabelGenerator generator = getItemLabelGenerator(row, column); if (generator != null && isItemLabelVisible(row, column)) { drawItemLabel(g2, orientation, dataset, row, column, x, y, (value < 0.0)); } // collect entity and tool tip information... if (state.getInfo() != null) { EntityCollection entities = state.getEntityCollection(); if (entities != null) { String tip = null; CategoryToolTipGenerator tipster = getToolTipGenerator(row, column); if (tipster != null) { tip = tipster.generateToolTip(dataset, row, column); } String url = null; if (getItemURLGenerator(row, column) != null) { url = getItemURLGenerator(row, column).generateURL(dataset, row, column); } CategoryItemEntity entity = new CategoryItemEntity( line.getBounds(), tip, url, dataset, row, dataset.getColumnKey(column), column); entities.add(entity); } } }
Example 9
Source File: CrosshairOverlay.java From buffer_bci with GNU General Public License v3.0 | 4 votes |
/** * Calculates the anchor point for a label. * * @param line the line for the crosshair. * @param anchor the anchor point. * @param deltaX the x-offset. * @param deltaY the y-offset. * * @return The anchor point. */ private Point2D calculateLabelPoint(Line2D line, RectangleAnchor anchor, double deltaX, double deltaY) { double x, y; boolean left = (anchor == RectangleAnchor.BOTTOM_LEFT || anchor == RectangleAnchor.LEFT || anchor == RectangleAnchor.TOP_LEFT); boolean right = (anchor == RectangleAnchor.BOTTOM_RIGHT || anchor == RectangleAnchor.RIGHT || anchor == RectangleAnchor.TOP_RIGHT); boolean top = (anchor == RectangleAnchor.TOP_LEFT || anchor == RectangleAnchor.TOP || anchor == RectangleAnchor.TOP_RIGHT); boolean bottom = (anchor == RectangleAnchor.BOTTOM_LEFT || anchor == RectangleAnchor.BOTTOM || anchor == RectangleAnchor.BOTTOM_RIGHT); Rectangle rect = line.getBounds(); // we expect the line to be vertical or horizontal if (line.getX1() == line.getX2()) { // vertical x = line.getX1(); y = (line.getY1() + line.getY2()) / 2.0; if (left) { x = x - deltaX; } if (right) { x = x + deltaX; } if (top) { y = Math.min(line.getY1(), line.getY2()) + deltaY; } if (bottom) { y = Math.max(line.getY1(), line.getY2()) - deltaY; } } else { // horizontal x = (line.getX1() + line.getX2()) / 2.0; y = line.getY1(); if (left) { x = Math.min(line.getX1(), line.getX2()) + deltaX; } if (right) { x = Math.max(line.getX1(), line.getX2()) - deltaX; } if (top) { y = y - deltaY; } if (bottom) { y = y + deltaY; } } return new Point2D.Double(x, y); }
Example 10
Source File: CrosshairOverlay.java From buffer_bci with GNU General Public License v3.0 | 4 votes |
/** * Calculates the anchor point for a label. * * @param line the line for the crosshair. * @param anchor the anchor point. * @param deltaX the x-offset. * @param deltaY the y-offset. * * @return The anchor point. */ private Point2D calculateLabelPoint(Line2D line, RectangleAnchor anchor, double deltaX, double deltaY) { double x, y; boolean left = (anchor == RectangleAnchor.BOTTOM_LEFT || anchor == RectangleAnchor.LEFT || anchor == RectangleAnchor.TOP_LEFT); boolean right = (anchor == RectangleAnchor.BOTTOM_RIGHT || anchor == RectangleAnchor.RIGHT || anchor == RectangleAnchor.TOP_RIGHT); boolean top = (anchor == RectangleAnchor.TOP_LEFT || anchor == RectangleAnchor.TOP || anchor == RectangleAnchor.TOP_RIGHT); boolean bottom = (anchor == RectangleAnchor.BOTTOM_LEFT || anchor == RectangleAnchor.BOTTOM || anchor == RectangleAnchor.BOTTOM_RIGHT); Rectangle rect = line.getBounds(); // we expect the line to be vertical or horizontal if (line.getX1() == line.getX2()) { // vertical x = line.getX1(); y = (line.getY1() + line.getY2()) / 2.0; if (left) { x = x - deltaX; } if (right) { x = x + deltaX; } if (top) { y = Math.min(line.getY1(), line.getY2()) + deltaY; } if (bottom) { y = Math.max(line.getY1(), line.getY2()) - deltaY; } } else { // horizontal x = (line.getX1() + line.getX2()) / 2.0; y = line.getY1(); if (left) { x = Math.min(line.getX1(), line.getX2()) + deltaX; } if (right) { x = Math.max(line.getX1(), line.getX2()) - deltaX; } if (top) { y = y - deltaY; } if (bottom) { y = y + deltaY; } } return new Point2D.Double(x, y); }