`
茶杯里的台风
  • 浏览: 12473 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

谢尔宾斯基三角形

 
阅读更多

20130706    谢尔宾斯基三角形

      我自认为自己是一个编程新手。我是一个不怎么有耐心,自制力又有点差的人。平常做什么事,没有人督促的话很难坚持到底。也许是因为这个原因,在学习上有没有下什么苦功夫,靠一些小聪明,算是顺利的来到了大二。

      这种情况有了改变,还是在这一学期,在听过一个交流会之后,迷茫的我突然找到了方向。知道了自己应该做什么,近期的目标就是想学到一些东西,不想再做一个编程上的无知者。

      我不太喜欢定什么目标,我比较喜欢走一步看一步,因为我始终相信,计划赶不上变化,我相信,只要做好自己手头上的事情,有什么理由不成功呢?

      所以从什么都不知道,到现在可以通过自己的努力做出一些简单的东西,我仍旧感到很有成就感。

     以下是谢尔宾斯基三角形的代码:

package dyh20130706;

import java.awt.Graphics;

import javax.swing.JFrame;


public class Triangle extends JFrame{	
	
	public static void main(String[] args) {
		//实例化一个 窗体的类
		Triangle dmb=new Triangle();
		//调用界面初始化方法
		dmb.initGUI();

	}
    //定义界面初始化的方法
	public void initGUI(){
		//定义窗体的属性
		this.setTitle("递归画三角形");
		this.setLocation(300,150);
		this.setSize(500, 500);
		this.setResizable(true);
		this.setDefaultCloseOperation(3);
		
		this.setVisible(true);	
		//窗体可见之后,在窗体上添加画布对象
	    Graphics g=this.getGraphics();
	    triListener tl =new triListener(g);
	    this.addMouseListener(tl);
	}

}

 以下是监听器的代码:

package dyh20130706;

import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class triListener implements MouseListener{
 private Graphics g;
 public triListener(Graphics g){
  this.g=g;
 }
 
 @Override
 public void mouseClicked(MouseEvent e) {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void mouseEntered(MouseEvent e) {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void mouseExited(MouseEvent e) {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void mousePressed(MouseEvent e) {
  double x1=200;
  double y1=100;
  double x2,y2,x3,y3;
  int a1,b1,a2,b2,a3,b3;
  x2=x1-150;
  y2=y1+150*Math.sqrt(3);
  x3=x1+150;
  y3=y1+150*Math.sqrt(3);
  a1=(int)x1;
  b1=(int)y1;
  a2=(int)x2;
  b2=(int)y2;
  a3=(int)x3;
  b3=(int)y3;
  g.drawLine(a1,b1,a2,b2);
  g.drawLine(a2,b2,a3,b3);
     g.drawLine(a1,b1,a3,b3);
     draw(a1,b1,a2,b2,a3,b3,6);
 
 }

 //定义一个画三角形的方法
public void draw(int X1,int Y1,int X2,int Y2,int X3,int Y3,int count){
  int A1,B1,A2,B2,A3,B3;
  if(count>0){
   count--;
   
   A1=(X1+X2)/2;
   B1=(Y1+Y2)/2;
   A2=(X2+X3)/2;
   B2=(Y2+Y3)/2;
   A3=(X1+X3)/2;
   B3=(Y1+Y3)/2;
   
   g.drawLine(A1, B1, A2, B2);
   g.drawLine(A2, B2, A3, B3);
   g.drawLine(A1, B1, A3, B3);
   
   this.draw(X1, Y1, A1, B1, A3, B3, count);
   //this.draw(X2, Y2, A1, B1, A2, B2, count);
   //this.draw(X3, Y3, A2, B2, A3, B3, count);
  }
  else{
   return;
  }
  
  
 }
  
 
 @Override
 public void mouseReleased(MouseEvent e) {
  // TODO Auto-generated method stub
  
 }

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics