关于java Graphics2D画图

我现在画一个旋转的图形publicvoidpaint(Graphicsg){Graphics2Dd2=(Graphics2D)g;Ellipse2Dellipse2D=n... 我现在画一个旋转的图形
public void paint(Graphics g)
{
Graphics2D d2=(Graphics2D)g;
Ellipse2D ellipse2D=new Ellipse2D.Double(30,28,80,40);
Ellipse2D ellipse2D1=new Ellipse2D.Double(30,30,40,80);
Area area1=new Area(ellipse2D);
Area arte2=new Area(ellipse2D1);
area1.add(arte2);//或
// area1.intersect(arte2);//与
// area1.subtract(arte2);//差
// area1.exclusiveOr(arte2);//异或
AffineTransform affienTransform=new AffineTransform();
for (int i = 0; i < 24; i++) {
affienTransform.rotate(15*Math.PI/180,30,30);
d2.draw(area1);
d2.setColor(Color.red);
d2.fill(area1);
}
}

现在我把这个画出来的图形作为一个对象再对它进行旋转要怎么弄?
还有,根据输入的数字来决定它创建多少个旋转的对象要怎么弄?
例如我输入2 就把这个图形作为对象旋转一次,再把旋转后的图形再作为一个对象再进行一次旋转
谢谢大虾帮忙~~
展开
 我来答
seekfor_
2009-08-21 · TA获得超过371个赞
知道小有建树答主
回答量:170
采纳率:66%
帮助的人:186万
展开全部
给你写好了,自己根据需要略微改下就行
public void paint(Graphics g)
{
super.paint(g);
Graphics2D d2=(Graphics2D)g;
Ellipse2D ellipse2D=new Ellipse2D.Double(30,28,80,40);
Ellipse2D ellipse2D1=new Ellipse2D.Double(30,30,40,80);
Area area1=new Area(ellipse2D);
Area arte2=new Area(ellipse2D1);
Area area3 = new Area();//用来保存画出来的图形
area1.add(arte2);//或
// area1.intersect(arte2);//与
// area1.subtract(arte2);//差
// area1.exclusiveOr(arte2);//异或
AffineTransform affienTransform=new AffineTransform();
for (int i = 0; i < 24; i++) {
affienTransform.rotate(15*Math.PI/180,30,30);
d2.draw(area1);
d2.setColor(Color.red);
d2.fill(area1);
area3.add(area1);
}
d2.translate(100,100);
rotateImage(2,area3,d2);//这里填几就旋转几次
}
public void rotateImage(int num, Area image, Graphics2D d2)
{
for (int i=0 ;i<num ;i++ )
{
image.transform(AffineTransform.getRotateInstance(225*Math.PI/180,30,30));//在这里就可以对画出来的图形进行旋转了,角度自己定
d2.draw(image);
d2.fill(image);
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式