`
不平凡的人
  • 浏览: 35460 次
  • 性别: Icon_minigender_1
  • 来自: 嘉峪关
社区版块
存档分类
最新评论

分型的一些东西

阅读更多

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

1)自己定义的方法体

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

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

 

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

/**
 * 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);
	 }
		
  }
	
}

 

分享到:
评论
1 楼 刘凯宁 2013-07-22  
  

相关推荐

    王拥军教授CISS分型.ppt

    "王拥军教授CISS分型" 王拥军教授CISS分型.ppt 是一份关于中风分型的课程讲义,共计十六页。该课程讲义主要围绕CISS(Chinese Ischemic Stroke Subclassification)分型的概念、原则和应用进行详细的解释和讨论。 ...

    voronoi分型

    在探讨使用Voronoi分型技术模拟晶粒计算机械寿命的应用之前,我们首先需要了解Voronoi分型技术和它在材料科学中的应用背景。 Voronoi分型是一种基于几何学的算法,用于生成一种具有特定性质的多边形网格,即Voronoi...

    灵敏的分型 - MetaTrader 4脚本.zip

    《MetaTrader 4脚本——探索灵敏的分型指标》 在金融交易的世界里,技术分析是投资者的重要工具,而MetaTrader 4(MT4)作为一款强大的交易平台,提供了丰富的技术指标和脚本,帮助交易者进行市场分析。本文将深入...

    三维随机分型地形显示

    在IT领域,三维随机分型地形显示是一种技术,它用于创建具有高度真实感的虚拟环境。这项技术在多个行业中有着广泛的应用,包括虚拟地理环境、虚拟景区游览和网络游戏开发等。下面将详细介绍这一领域的相关知识点。 ...

    分型集合高端模型结构

    分型及各的高端结构,给想学习分形几何的学者一个比较深刻的印象

    文华财经指标公式源码WH6指标公式赢顺云顶底分型.doc

    文华财经指标公式源码WH6指标公式赢顺云顶底分型 通过对文华财经指标公式源码WH6指标公式赢顺云顶底分型的分析,我们可以总结出以下知识点: 1. 技术指标:文华财经指标公式源码WH6指标公式赢顺云顶底分型中使用了...

    文华财经指标公式源码分型指标分形指标公式源码.doc

    以下是该文件中一些技术指标的解释: 1. SMA(简单移动平均线):用于计算股票的移动平均值,以了解股票的长期趋势。 代码:上:=(SMA(HIGH,21,2) * 1.05); 2. RSV(相对强弱指标):用于衡量股票的强弱程度,以...

    c++ 树草的分型画法.

    在计算机图形学中,"分型"是一种模拟自然形状,如树、草等复杂结构的方法。分型艺术基于数学上的分形理论,通过迭代过程来创建具有自相似性的图案。在C++编程中,我们可以利用控制结构(如循环和递归)来实现这种...

    分型趋势线 - MetaTrader 5脚本.zip

    《MetaTrader 5中的分型趋势线脚本详解》 MetaTrader 5(MT5)是一款全球广泛应用的外汇、期货及股票市场的交易平台,以其强大的图表分析功能和丰富的交易工具而备受推崇。在这个平台上,交易者可以利用各种自定义...

    悬浮芯片HPA基因分型方法的建立及评价研究.pdf

    在本文中,悬浮芯片技术被应用于HPA(Human Platelet Antigen,人血小板抗原)基因分型的研究,以期建立一种准确且高效的HPA基因分型方法。 HPA是一类存在于血小板糖蛋白上的特异性抗原,对于血小板免疫学具有重要...

    细菌分型软件

    【细菌分型软件】是一种专门用于微生物研究的工具,它主要功能是对同种细菌进行详细的分型分析。在生物学和医学研究中,细菌分型是理解病原体流行病学、追踪感染源以及评估疫苗效果的关键步骤。通过这种软件,科学家...

    模具设计第九章侧向分型与抽芯机构设计.pptx

    本资源主要讲解了模具设计第九章侧向分型与抽芯机构设计的相关知识点,包括侧向分型与抽芯机构的设计、计算,斜导柱分型与抽芯机构、斜滑块分型与抽芯机构、液压或气动侧抽芯机构等的分类,抽拔力和抽芯距的计算,...

    期货软件指标文华财经指标公式源码顶底分型指标公式.doc

    期货软件指标文华财经指标公式源码顶底分型指标公式 本文档主要介绍了期货软件指标文华财经指标公式源码顶底分型指标公式的知识点,以下是对该文件的详细解释: 首先,文档中出现了多个技术指标公式,包括指数平滑...

    通达信指标公式源码缠论指标之二 顶底分型线段(通达信主图).doc

    通达信指标公式源码缠论指标之二 顶底分型线段(通达信主图) 本资源是一个通达信指标公式源码,用于缠论指标之二 顶底分型线段的计算。该公式由多个变量组成,每个变量都有其特定的计算逻辑。 局部低点预选 A:...

    从TOAST分型入手学习脑梗死(PPT47页).ppt

    【标题】: 从TOAST分型学习脑梗死 【描述】: 本讲座将通过TOAST分型深入理解脑梗死的病因和临床表现,以河北省人民医院神经内三科徐国栋医生的观点展开。 【知识点】: 1. 脑卒中现状: 中国是全球脑卒中发病率最高...

    从TOAST分型入手学习脑梗死.pptx

    【标题】: 从TOAST分型理解脑梗死的分类与诊断 【描述】: 脑梗死,即缺血性脑卒中,是中国第一大死因,且其发病率逐年上升,对社会经济造成巨大负担。TOAST分型是国际上广泛采用的缺血性卒中病因分类标准,有助于...

    肿瘤的分型、分级和分期

    肿瘤学中的分型、分级和分期是判断恶性肿瘤生物学特性和临床进程的三个基本指标。这一概念的重要性,在肿瘤疾病的诊断、治疗以及预后评估中占据核心地位。分型主要指根据肿瘤组织来源和生物学特性的分类,反映了肿瘤...

    文华财经期货软件指标公式源码期货指标赢顺云顶底分型.doc

    文华财经期货软件指标公式源码期货指标赢顺云顶底分型 本文档主要介绍了文华财经期货软件中的指标公式源码,包括了多种技术指标的计算公式和应用方法。这些指标涵盖了股票、期货、外汇等多种市场,旨在帮助投资者更...

    HPV分型检测的临床应用PPT课件.pptx

    HPV分型检测的临床应用,HPV分型检测的临床应用PPT,HPV分型检测的临床应用课件

    通达信指标——鳄鱼线分型(主图).doc

    通达信指标——鳄鱼线分型(主图) 通达信指标是指在金融市场中使用的一种技术指标,用于分析和预测金融市场中的价格走势。鳄鱼线分型是通达信指标中的一种特殊类型,主要用于识别和预测价格的趋势和变化。 鳄鱼线...

Global site tag (gtag.js) - Google Analytics