分型的一些东西_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 分型的一些东西

分型的一些东西

 2013/7/23 0:40:28  不平凡的人  程序员俱乐部  我要评论(0)
  • 摘要:之前,用分型写了一些东西.一直没有发表.分型中我觉得主要是用到的东西是递归这个知识点.简单谈一下自己对递归的理解,觉得就是两个方面.1)自己定义的方法体2)之后的画图中反复调用该方法即可.关于分型自己也是初学并没有深入了解,好多东西也是一知半解.最后就发一些自己用分型画的图.1.枫叶,不过还有一些bug/***cgh20130716的包来管理MyTree类*/packagecgh20130716;importjava.awt.Color;importjava.awt.Dimension
  • 标签:

之前,用分型写了一些东西.一直没有发表.分型中我觉得主要是用到的东西是递归这个知识点.简单谈一下自己对递归的理解,觉得就是两个方面.

1)自己定义的方法体

2)之后的画图中反复调用该方法即可.

关于分型自己也是初学并没有深入了解,好多东西也是一知半解.最后就发一些自己用分型画的图.

?

1.枫叶,不过还有一些bug

class="java" name="code">/**
 * cgh20130716的包来管理MyTree类
 */
package cgh20130716;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;

import javax.swing.JButton;
import javax.swing.JFrame;

/**
 * 定义一个MyTree类继承自JFrame
 * @author Allen
 *
 */
public class MyTree extends JFrame {

	/**
	 * 定义一个程序的入口主函数
	 * @param args
	 */
	public static void main(String[] args) {
	//创建一个对象并调用窗体的方法
	MyTree  mt = new MyTree();
	mt.INtUI();

	}

	//初始化一个窗体
	public void INtUI() {
		 /*
		 * 调用窗体的方法	
		 */
		this.setTitle("枫叶");
		this.setSize(900,700);
		this.setLocationRelativeTo(null);
		this.setLayout(new FlowLayout(FlowLayout.LEFT,2,3));
		/*
		 * 创建按钮对象
		 */
		JButton jbu = new JButton("新的开始");
		jbu.setPreferredSize(new Dimension(110,35));
		this.add(jbu);
		//设置面板的颜色
		this.getContentPane().setBackground(Color.BLACK);
		
		//显示窗体的可见性
		this.setVisible(true);
		//窗体去的画布对象
		Graphics g = this.getGraphics();
		//实例化事件监听类对象
		MyTreeL mt = new MyTreeL(g);
		//按钮添加监听器
		jbu.addActionListener(mt);
		
	}

}



package cgh20130716;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

/**
 * 定义一个MyTreeL实现接口
 * @author Allen
 *
 */
public class MyTreeL implements ActionListener{

	private Graphics g;
	public MyTreeL(Graphics g){
		this.g = g;
	}
	
	private double x1=1,y1=1;
	int j=0;
	//调用监听器方法
	public void actionPerformed(ActionEvent e){

	String value = e.getActionCommand();
	if(value.equals("新的开始")){
	
    while(j<2000){
    	
  
	Random rand = new Random();
	int i = rand.nextInt(400);
	
	if(i<100){
		
		double x2,y2;
		x2 = 0.1400*x1+0.0100*y1-0.0800;
		y2 = 0*x1+0.5100*y1-1.3100;
		//迭代赋值
		x1=x2;
		y1=y2;
		Color c = new Color(235,72,125);
		g.setColor(c);
		g.drawLine((int)(x1*80+400),750-(int)(y1*100+350),(int)(x1*80+400),750-(int)(y1*100+350));
		
	}
	if(i>=100&&i<200){
		
		
			double x2,y2;
			x2 = 0.4300*x1+0.5200*y1+1.4900;
			y2 = -0.4500*x1+0.500*y1-0.7500;
			//迭代赋值
			x1=x2;
			y1=y2;
			
			g.drawLine((int)(x1*80+400),750-(int)(y1*100+350),(int)(x1*80+400),750-(int)(y1*100+350));
		
		}
	if(i>=200&&i<300){

		
			double x2,y2;
			x2 = 0.4500*x1-0.4900*y1-1.6200;
			y2 = 0.4700*x1+0.4700*y1-0.7400;
			//迭代赋值
			x1=x2;
			y1=y2;
			
			g.drawLine((int)(x1*80+400),750-(int)(y1*100+350),(int)(x1*80+400),750-(int)(y1*100+350));
	    }
	if(i>=300&&i<400){

		
			double x2,y2;
			x2 = 0.4900*x1-0*y1+0.0200;
			y2 = 0*x1+0.5100*y1+1.6200;
			//迭代赋值
			x1=x2;
			y1=y2;
			Color c = new Color(225,173,29);
			g.setColor(c);
			g.drawLine((int)(x1*80+400),750-(int)(y1*100+350),(int)(x1*80+400),750-(int)(y1*100+350));
	      }
	
        }
    
     }
		
  }
	
}

//	//定义一个方法
//	public void drawT(){}

?

2.谢宾斯基地毯

/**
 * 定义一个cgh07092013的包来管理Square2类
 */
package cgh07092013;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

/**
 * 定义一个Square2类继承自JFrame
 * @author Allen
 *
 */
public class Square2 extends JFrame {

	/**
	 * 定义一个程序的入口主函数
	 * @param args
	 */
	public static void main(String[] args) {
	//实例化一个对象并调用窗体初始化的方法
	Square2 sq = new Square2();
	sq.INtUI();

	}

	//初始化一个窗体对象
	public void INtUI() {
		/*
		 * 调用窗体的方法	
		 */
		this.setTitle("循规蹈矩的方形");
		this.setSize(700,700);
		this.setLocationRelativeTo(null);
		this.setLayout(new FlowLayout(FlowLayout.LEFT,2,3));
		/*
		 * 创建按钮对象
		 */
		JButton jbu = new JButton("地毯");
		jbu.setPreferredSize(new Dimension(90,40));
		this.add(jbu);
		
		//显示窗体的可见性
		this.setVisible(true);
		
		//从窗体上去的画布
		final Graphics g = this.getGraphics();
		
		//创建一个监听器
		ActionListener action = new ActionListener(){

			//监听器方法
			public void actionPerformed(ActionEvent e) {
		    
			//初始化一个画正方形的方法
			DrawS(g,100,100,500,500,5);
	
		   }
			
		};
		//给按钮添加监听器
		jbu.addActionListener(action);
		
	}
	//坐标属性
	private int x1,y1;
	private int w,h;
	
	//定义一个画方形的方法
	public void DrawS(Graphics g,int x1,int y1,int w,int h,int count){
	//判断递归循环
	if(count==0){
		
		return;
		
	}else{
		//画一个填充方形
		g.fillRect(x1+w/3,y1+h/3,w/3,h/3);
		//递归调用自身方法
		DrawS(g,x1,y1,w/3,h/3,count-1);
		DrawS(g,x1+w/3,y1,w/3,h/3,count-1);
		DrawS(g,x1+2*w/3,y1,w/3,h/3,count-1);
		DrawS(g,x1,y1+h/3,w/3,h/3,count-1);
		DrawS(g,x1+2*w/3,y1+h/3,w/3,h/3,count-1);
		DrawS(g,x1,y1+2*h/3,w/3,h/3,count-1);
		DrawS(g,x1+w/3,y1+2*h/3,w/3,h/3,count-1);
		DrawS(g,x1+2*w/3,y1+2*h/3,w/3,h/3,count-1);
	 }
		
  }
	
}

?

  • 相关文章
发表评论
用户名: 匿名