⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 printline.java

📁 计算机图形学的一些实验
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.List;


public class PrintLine extends Frame{
	List<Point> Points = new ArrayList<Point>();
	Label a1=new Label("请输入圆的半径:");
	TextField b1=new TextField(); 
	
	Button conf=new Button("确定");
	Button cancle=new Button("清除");
	
	int t;
	int r;
	double d;
	//Point a= new Point(1,1);
	void LaunchFrame(){
		   int i;
		   this.setLocation(100,100);
		   this.setSize(700,700);
		   this.setVisible(true);
		   this.setLayout(null);
		   this.setTitle("计科061319 肖亮");
		   a1.setBounds(100, 620, 100, 30);
		   b1.setBounds(230, 620, 60, 30);
	       conf.setBounds(310,620,60,30);
		   cancle.setBounds(400, 620, 60, 30);
		   this.add(a1); 
		   this.add(b1);
		   this.add(conf);
		   this.add(cancle);
		   this.setBackground(Color.BLACK);
		   this.addWindowListener(new MyWindowMonitor());
		   confLis bl=new confLis();
		   cancLis b2=new cancLis();
		   conf.addActionListener(bl);  
		   cancle.addActionListener(b2); 
	}	
	
	class cancLis implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			Points.clear();
			repaint();
			
		}
		}
	
	class confLis implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			Points.clear();
			try{
			 r=Integer.parseInt(b1.getText());
			if(r==0){
				
			}
			else{
			int x,y;
			
			x=0; y=r;
			d=1.25-r;
			Points.add(new Point(x,y));
			Points.add(new Point(x,-y)); 
			Points.add(new Point(-x,y)); 
			Points.add(new Point(-x,-y)); 
			Points.add(new Point(y,x)); 
			Points.add(new Point(-y,x));  
			Points.add(new Point(y,-x)); 
			Points.add(new Point(-y,-x));  //显示圆弧上的八个对称点
		 while(x<=y)
			 {	if(d<0)   	d+=2*x+3;
					else    { d+=2*(x-y)+5;  y=y-1;}
			    x++;
			    Points.add(new Point(x,y));
				Points.add(new Point(x,-y)); 
				Points.add(new Point(-x,y)); 
				Points.add(new Point(-x,-y)); 
				Points.add(new Point(y,x)); 
				Points.add(new Point(-y,x));  
				Points.add(new Point(y,-x)); 
				Points.add(new Point(-y,-x));
			 	}
			}

			}catch(Exception ee){}
			repaint();
		}
	}
	
	public void paint(Graphics g){
		Color c =g.getColor();
		g.setColor(Color.gray);
		for(int i=100;i<=600;i=i+25)
		{
			g.drawLine(i, 100, i, 600);
			
		}
		for(int i=100;i<=600;i=i+25){
			g.drawLine(100,i,600,i);
		}
//a.draw(g);
		g.drawOval(350-r*25, 350-r*25,r*50,r*50);
		for(int i=0;i<Points.size();i++){
			Point p= Points.get(i);
			if(p.x<11&&p.y<11&&p.y>-11&&p.x>-11){
			p.draw(g);}
		}
		
		g.setColor(c);
	}
	
	class MyWindowMonitor extends WindowAdapter{
		public void windowClosing(WindowEvent e){
			setVisible(false);
			System.exit(0);
		}
	}
	

	
	
	public static void main(String[] a) {
		new PrintLine().LaunchFrame();
	}

}    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -