java 饼图_Java:绘制有立体感的3D饼图2,鼠标可以选择饼图

a4c26d1e5885305701be709a3d33442f.png

====================================GeometryUtil.java====================================

importjava.awt.geom.Point2D;

publicclassGeometryUtil

{

//

两点之间的距离

publicstaticdoubledistanceOfPoints(Point2D

p1, Point2D p2) {

doubledisX

= p2.getX() - p1.getX();

doubledisY

= p2.getY() - p1.getY();

doubledis

= Math.sqrt(disX * disX + disY * disY);

returndis;

}

//

两点的中点

publicstaticPoint2D

middlePoint(Point2D p1, Point2D p2) {

doublex

= (p1.getX() + p2.getX()) / 2;

doubley

= (p1.getY() + p2.getY()) / 2;

returnnewPoint2D.Double(x,

y);

}

//

在两点所在直线上,以从startPoint到endPoint为方向,离startPoint的距离disToStartPoint的点

publicstaticPoint2D

extentPoint(Point2D startPoint, Point2D endPoint,doubledisToStartPoint)

{

doubledisX

= endPoint.getX() - startPoint.getX();

doubledisY

= endPoint.getY() - startPoint.getY();

doubledis

= Math.sqrt(disX * disX + disY * disY);

doublesin

= (endPoint.getY() - startPoint.getY()) / dis;

doublecos

= (endPoint.getX() - startPoint.getX()) / dis;

doubledeltaX

= disToStartPoint * cos;

doubledeltaY

= disToStartPoint * sin;

returnnewPoint2D.Double(startPoint.getX()

+ deltaX, startPoint.getY() + deltaY);

}

}

====================================Pie.java====================================

importjava.awt.Color;

importjava.awt.geom.Arc2D;

importjava.awt.geom.Area;

importjava.awt.geom.GeneralPath;

importjava.awt.geom.Point2D;

classPie

{

privateArc2Darc;//

这里的弧并不是圆上的一弧,而是椭圆的一部分.

privateAreafrontSite;

privateArealeftSite;

privateArearightSite;

privateColorcolor;

privatePieselectedPie;

privatePoint2DarcMiddle;

privatePoint2DlabelPosition;

privatedoublevalue;

privateintshadowDepth;

privatedoubleselectedShiftDis;//

被选中的饼图在他的中线上移动的距离

publicPie(Arc2D

arc, Color color,doublevalue)

{

this(arc,

color, value, 10, 30);

}

publicPie(Arc2D

arc, Color color,doublevalue,intshadowDepth,doubleselectedShiftDis)

{

this.arc=

arc;

this.color=

color;

this.value=

value;

this.selec

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值