当前位置:首页 » 编程语言 » java椭圆

java椭圆

发布时间: 2023-09-24 05:59:32

‘壹’ java 椭圆算法

以下代码,将输出一个椭圆,再有问题,我可远程助你。如下:

/**
*(300,100)(400,100)
*
*/
importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
publicclassLipse
{
publicstaticvoidmain(String[]args)
{
newMainFrame();
}
}

{
JPanelpane=newJPanel();
JTextFieldT_a,T_b;
JButtonDraw,Show;
JLabelL_a,L_b;
inta,b;
MainFrame()
{
super("DrawLipseWindow");
Containercon=this.getContentPane();
con.setLayout(null);

pane.setBounds(20,20,850,550);
pane.setBackground(newColor(100,156,200));
con.add(pane);

L_a=newJLabel("请输入长半径:a");
L_a.setBounds(180,580,100,20);
con.add(L_a);

L_b=newJLabel("请输入短半径:b");
L_b.setBounds(180,630,100,20);
con.add(L_b);


T_a=newJTextField();
T_a.setBounds(300,580,50,20);
con.add(T_a);

T_b=newJTextField();
T_b.setBounds(300,630,50,20);
con.add(T_b);

Draw=newJButton("画椭圆");
Draw.setBounds(550,580,90,30);
Draw.addActionListener(this);
con.add(Draw);

Show=newJButton("显示坐标");
Show.setBounds(550,620,90,30);
Show.addActionListener(this);
con.add(Show);

this.addWindowListener(newCloseWindow());
this.setBounds(20,20,900,700);
this.setVisible(true);
this.setResizable(false);

}/*MainFrame()*/
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==Draw)
{
a=Integer.parseInt(T_a.getText().trim());
b=Integer.parseInt(T_b.getText().trim());
Lineline=newLine(this);
line.drawLipse(a,b);
}
if(e.getSource()==Show)
{
Graphicsg1=this.pane.getGraphics();
g1.setColor(Color.PINK);
g1.drawLine(0,300,920,300);//----x---
g1.drawLine(410,0,410,720);//----y---
g1.dispose();
}

}/*methodactionPerformed*/
}
classLine
{
MainFramejb;
Line(MainFramejb)
{
this.jb=jb;
}
publicvoiddrawLipse(inta,intb)
{
intx,y;
doubled1,d2;
x=0;y=b;
d1=b*b+a*a*(-b+0.25);
Graphicsg=jb.pane.getGraphics();
g.setColor(Color.red);
g.drawLine(x+410,y+300,x+410,y+300);
g.drawLine(-x+410,-y+300,-x+410,-y+300);
g.drawLine(-x+410,y+300,x+410,-y+300);
g.drawLine(x+410,-y+300,x+410,-y+300);
try
{
while(b*b*(x+1)<a*a*(y-0.5))
{
if(d1<=0)
{
d1+=b*b*(2*x+3);
x++;
}
else
{
d1+=(b*b*(2*x+3)+a*a*(-2*y+2));
x++;
y--;
}
g.drawLine(x+410,y+300,x+410,y+300);
g.drawLine(-x+410,-y+300,-x+410,-y+300);
g.drawLine(-x+410,y+300,x+410,-y+300);
g.drawLine(x+410,-y+300,x+410,-y+300);
Thread.sleep(30);
}//topofwhile
}catch(Exceptione){}

d2=b*b*(x+0.5)*(x+0.5)+a*a*(y-1)*(y-1)-a*a*b*b;
try
{
while(y>0)
{
if(d2<=0)
{
d2+=b*b*(2*x+2)+a*a*(-2*y+3);
x++;
y--;
}
else
{
d2+=a*a*(-2*y+3);
y--;
}
g.drawLine(x+410,y+300,x+410,y+300);
g.drawLine(-x+410,-y+300,-x+410,-y+300);
g.drawLine(-x+410,y+300,x+410,-y+300);
g.drawLine(x+410,-y+300,x+410,-y+300);
Thread.sleep(30);
}/*bottomofwhile*/

}catch(Exceptione){}

}/*DrawLipse*/

}

{
publicvoidwindowClosing(WindowEvente)
{
System.exit(0);
}
}
热点内容
脚本微信取关 发布:2025-02-01 19:35:01 浏览:150
如何用云服务器部署svn 发布:2025-02-01 19:33:20 浏览:988
缓存迅雷 发布:2025-02-01 19:31:53 浏览:974
linux与unixshell编程指南 发布:2025-02-01 19:25:03 浏览:938
护肤品数据库 发布:2025-02-01 19:25:02 浏览:647
python接受json数据 发布:2025-02-01 19:24:24 浏览:942
修改网站数据库 发布:2025-02-01 19:02:16 浏览:423
果粉不换安卓怎么办 发布:2025-02-01 18:57:21 浏览:796
网页卡需要什么配置 发布:2025-02-01 18:50:30 浏览:136
编程玩家 发布:2025-02-01 18:22:36 浏览:823