There are 1 code examples for java.awt.geom.QuadCurve2D.
The API names are highlighted below.
You can use
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:
/**
* 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);
}