There are 1 code examples for java.awt.geom.CubicCurve2D.

The API names are highlighted below. You can use suckoo button to vote the code example(s) you like. The best code example will be ranked first next time. Thanks a lot for your feedback.

Project Name: jFreeChart Package: org.jfree.chart.plot

Source Code: PiePlot.java (Click to view .java file)

Method Code:
vote
like

/** 
 * Draws a section label on the right side of the pie chart.
 * @param g2  the graphics device.
 * @param state  the state.
 * @param record  the label record.
 */
protected void drawRightLabel(Graphics2D g2,PiePlotState state,PieLabelRecord record){
  double anchorX=state.getLinkArea().getMaxX();
  double targetX=anchorX + record.getGap();
  double targetY=record.getAllocatedY();
  if (this.labelLinksVisible) {
    double theta=record.getAngle();
    double linkX=state.getPieCenterX() + Math.cos(theta) * state.getPieWRadius() * record.getLinkPercent();
    double linkY=state.getPieCenterY() - Math.sin(theta) * state.getPieHRadius() * record.getLinkPercent();
    double elbowX=state.getPieCenterX() + Math.cos(theta) * state.getLinkArea().getWidth() / 2.0;
    double elbowY=state.getPieCenterY() - Math.sin(theta) * state.getLinkArea().getHeight() / 2.0;
    double anchorY=elbowY;
    g2.setPaint(this.labelLinkPaint);
    g2.setStroke(this.labelLinkStroke);
    PieLabelLinkStyle style=getLabelLinkStyle();
    if (style.equals(PieLabelLinkStyle.STANDARD)) {
      g2.draw(new Line2D.Double(linkX,linkY,elbowX,elbowY));
      g2.draw(new Line2D.Double(anchorX,anchorY,elbowX,elbowY));
      g2.draw(new Line2D.Double(anchorX,anchorY,targetX,targetY));
    }
 else     if (style.equals(PieLabelLinkStyle.QUAD_CURVE)) {
      QuadCurve2D q=new QuadCurve2D.Float();
      q.setCurve(targetX,targetY,anchorX,anchorY,elbowX,elbowY);
      g2.draw(q);
      g2.draw(new Line2D.Double(elbowX,elbowY,linkX,linkY));
    }
 else     if (style.equals(PieLabelLinkStyle.CUBIC_CURVE)) {
      CubicCurve2D c=new CubicCurve2D.Float();
      c.setCurve(targetX,targetY,anchorX,anchorY,elbowX,elbowY,linkX,linkY);
      g2.draw(c);
    }
  }
  TextBox tb=record.getLabel();
  tb.draw(g2,(float)targetX,(float)targetY,RectangleAnchor.LEFT);
}