Java2D编程------形状

7 篇文章 1 订阅
Graphics2D g2=(Graphics2D)g;
/*****线条******/
Point2D point=new Point2D.Double(30, 50);
Line2D line=new Line2D.Double(100, 100, 200, 200);
QuadCurve2D qc=new QuadCurve2D.Double(100,10,300,200,500,10);//二次曲线
CubicCurve2D cc=new CubicCurve2D.Double(0, 200, 100, 400, 200, 80, 300, 200);//三次曲线
/*******矩形相关*******/
Rectangle2D rect=new Rectangle2D.Double(30, 30, 100, 100);//矩形	
RoundRectangle2D round=new RoundRectangle2D.Double(100, 100, 200, 200, 30,30);//最后一个为闭合类型
Ellipse2D elipse=new Ellipse2D.Double(300,300,100,100);//圆
Arc2D arc=new Arc2D.Double(100, 100, 200, 200, 30, 30, 0);
/******构建路径********/
GeneralPath gp=new GeneralPath();
gp.moveTo(40, 200);
gp.lineTo(50, 200);
gp.quadTo(100, 100, 150, 200);
gp.lineTo(200, 200);
gp.curveTo(250, 350, 300, 100, 350,200);
gp.lineTo(350, 400);
gp.lineTo(40, 400);
gp.closePath();
//设置画笔颜色和线条
g2.setPaint(new GradientPaint(0, 200, Color.RED, 0, 400, Color.BLUE));
g2.setStroke(new BasicStroke(20));
//划线或填充
g2.draw(gp);
g2.fill(gp);
点-----Point2D
线-------Line2D、QuadCurve(二次曲线)、CubicCurve2D(三次曲线)
矩形-----Rectangle2D(矩形),RoundRectangle2D(圆角矩形),Ellipse2D(圆和椭圆),Arc2D(弧形,因为是矩形边框所以化为一类)
路径-----GeneralPath;

虽然还有个多边形,但是感觉被边缘化了,因为完全通过路径来建立。

相关函数原型

1.线:

直线 Line2D(x1,y1,x2,y2)

二次曲线 QuadCurve2D(x1,y1,contrlX,contrlY,x2,y2)

controlX,controlY-------控制点,用于控制曲线的形状

三次曲线 CubicCurve2D(x1,y1,ctrlX1,ctrlY1,ctrlX2,ctrlY2,x2,y2)

ctrlX1,ctrlY1----第一个控制点

ctrlX2,ctrlY2----第二个控制点

2.矩形相关

矩形  Rectangle2D(x,y,width,height)

圆角矩形  RoundRectangle2D(x,y,width,height,arcWidth,arcHeight)

arcWidth,arcHeight-------圆角矩形的圆角形状

椭圆   Ellipse2D(x,y,width,height) 

通过外接矩形刻画椭圆

弧形   Arc2D(x,y,width,height,startAngle,arcAngle,closType)

通过矩形来刻画弧形

//x,y,width,height-----弧度所在的矩形,弧形的中心位于矩形的中心

//strartAngle---------与起始线的夹角(用角度表示)
//arcAngle------------弧形大小(用角度表示)

//closureType---------Arc2D.OPEN(弧形两个点无连线),Arc2D.PIE(弧形的所在椭圆的半径),Arc2D.CHORD(两点直连线)

3.路径

GeneralPath----必须使用的路径

常用方法:

moveTo()-------移动到制定点

lineTo()-------从前一点到当前点划线

quadTo()-------二次曲线,省略了起始点

curveTo()------三次曲线,省略了起始点

closePath()----闭合曲线,自动完成路径的闭合

append(Shape,type)------将形状加入路径,type为boolean,true表示从上一个点到形状划线,false表示不画。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值