亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lsystem.java

?? 植物仿真
?? JAVA
字號:
package classes;
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import java.util.Date;
import java.applet.Applet;
public class Lsystem extends Applet implements Runnable,ItemListener,ActionListener//主窗口
{
	Thread runner;
	boolean running;
	boolean start;

	int Count=0;
	int R=0,G=0,B=0;

	boolean colorLock=true;
	int exampleChoice=1;//控制"圖例演示"中單選按鈕狀態
	int startX=340;//起始點
	int startY=20;
	double initDirection=60;//作畫時的初始方向
	double direction;//中間變量
	double lengthF=3.3;//每步步長
	double rotation=-3;//作圖中給定的轉角
	int startDepth=7;//畫圖迭代次數
	int Depth=0;
	int ruleNumber=2;//規則數
	String sStart;//公理;即所要畫的字符串
	String sRule[][];//規則數組
	doublePoint a, b;//畫線段的兩點,由類定義

	Graphics g;
	Choice choice1,choice2,choice3;
	Button step;
	Panel p;

	public void init()
	{
		this.setLayout(new BorderLayout());
		sRule=new String [6][2];
		//初始化為"斜草"規則
		sStart = "G";
		sRule[0][0]="G";
		sRule[0][1]="GFX[+++++GFG][-----GFG]";
		sRule[1][0]="X";
		sRule[1][1]="F-XF";

		choice1=new Choice();
		choice2=new Choice();
		choice3=new Choice();

		choice1.add("前景色");
		choice1.add("背景色");
		choice1.add("植物色");

		choice2.add("開始繪畫");
		choice2.add("圖例演示");
		choice2.add("參數控制");
		choice2.add("清除畫面");

		choice3.add("關于L系統");
		choice3.add("關于程序");

		choice1.addItemListener(this);
		choice2.addItemListener(this);
		choice3.addItemListener(this);

		step=new Button("單步迭代");
		step.addActionListener(this);

		p=new Panel();
		p.setLayout(new FlowLayout());

		p.add(new Label("顏色"));
		p.add(choice1);
		p.add(new Label("畫圖"));
		p.add(choice2);
		p.add(new Label("幫助"));
		p.add(choice3);
		p.add(step);

		add(p,"South");

		this.setSize(517,550);

		reinit();
	}
	//從新初始化
	public void reinit()
	{
		Depth=startDepth;
		start=true;
		running=false;
	}
    //獲取背景色
	public Color getBackColor()
	{
		Color c=this.getBackground();
		return c;
	}
	//獲取前景色
	public Color getForeColor()
	{
		Color c=this.getForeground();
		return c;
	}
	//設置背景色
	public void setBackColor()
	{
		Color c=new Color(R,G,B);
		this.setBackground(c);
	}
	//設置前景色
	public void setForeColor()
	{
		Color c=new Color(R,G,B);
		this.setForeground(c);
	}

	public void destroy()
	{
		if(runner!=null)
		{
			runner=null;
			running=false;
		}
	}
	public void start()
	{
		if (runner==null)
		{
			runner=new Thread(this);
			runner.start();
		}
	}

	public void stop()
	{
		if (runner!=null)
		{
			runner=null;
			start=false;
			running=false;
		}
	}
	public void run()
	{
		while(true)
		{
			if(start)
			{
				start=false;
				g=this.getGraphics();
				g.clearRect(0,0,517,550);
				a=new doublePoint(startX,startY); // 起始點
				direction=initDirection;        // 起始的方向
				HuiHua(g, sStart, startDepth);
				g.finalize();
				running=false;
			}
		}

	}
	public void paint(Graphics g)
	{
		g=this.getGraphics();
		if(!running)
		{
			start=true;
			return;
		}
		else
		{
			return;
		}
	}

	public void actionPerformed(ActionEvent ae)
	{
		if(ae.getSource()==step)
		{
			g=this.getGraphics();
			g.clearRect(0,0,560,560);
			a=new doublePoint(startX,startY); // 起始點
			direction=initDirection;// 起始的方向
			Count=0;
			if(Depth==startDepth)
				Depth=0;
			HuiHua(g,sStart,(++Depth)%(startDepth+1));
		}
	}

	public void itemStateChanged(ItemEvent ie)//各個子菜單按鈕的時間處理
	{
		if(ie.getItemSelectable()==choice1)
		{
			if(choice1.getSelectedIndex()==0)//“前景色”的處理
			{
				colorLock=false;
				g=this.getGraphics();
				g.clearRect(0,0,517,550);
				Color_set fore_cs=new Color_set(this,"前景色",0);
				fore_cs.setVisible(true);
			}
			if(choice1.getSelectedIndex()==1)//“背景色”的處理
			{
				g=this.getGraphics();
				g.clearRect(0,0,517,550);
				Color_set back_cs=new Color_set(this,"背景色",1);
				back_cs.setVisible(true);
			}
			if(choice1.getSelectedIndex()==2)//“植物色”的處理
			{
				colorLock=true;
			}
		}
		if(ie.getItemSelectable()==choice2)
		{
			if(choice2.getSelectedIndex()==0)//“開始繪畫”的處理
			 {
			 g=this.getGraphics();
			 a=new doublePoint(startX,startY); // 起始點
			 direction=initDirection;// 起始的方向
			 Count=0;
			 HuiHua(g,sStart,startDepth);
			 }
			if(choice2.getSelectedIndex()==1)//“圖例演示”的處理
			{
				g=getGraphics();
				g.clearRect(0,0,517,550);
				Lexample ex=new Lexample(this,"圖例演示");
				ex.setVisible(true);
			}
			if(choice2.getSelectedIndex()==2)//“參數控制”的處理
			{
				g=this.getGraphics();
				g.clearRect(0,0,517,550);
				Lcontrol lc=new Lcontrol(this,"參數控制");
				lc.setVisible(true);
			}
			if(choice2.getSelectedIndex()==3)//“清除畫面”的處理
			{
				g=this.getGraphics();
				g.clearRect(0,0,517,550);
			}
		}
		if(ie.getItemSelectable()==choice3)
		{
			if(choice3.getSelectedIndex()==0)//“關于L系統”的處理
			{
				g=this.getGraphics();
				g.clearRect(0,0,517,550);
				AboutSystem as=new AboutSystem("關于L系統",1);
				as.setVisible(true);
			}
			if(choice3.getSelectedIndex()==1)//“關于程序”的處理
			{
				g=this.getGraphics();
				g.clearRect(0,0,517,550);
				AboutPrograme ap=new AboutPrograme("關于程序");
				ap.setVisible(true);
			}
		}
	}
    // 核心程序
	public void HuiHua(Graphics g,String instruction, int depth)
	{
		if (depth==0)
			return;   //深度為0即表示可以開始畫了
		depth -= 1;
		//每遞歸一次深度減一
		Vector aPoint = new Vector();//用堆棧記錄[]中的內容
		Vector aDirection = new Vector();
		String sDirection;

		int i,j;
		char c;

		for (i=0;i<instruction.length();i++)
		{
			c = instruction.charAt(i);  //獲取公理中的字符
			// 開始遞歸
			for(j=0;j<ruleNumber;j++)
			{
				if (c==sRule[j][0].charAt(0))
				{
					HuiHua(g,sRule[j][1],depth); //若找到公理符合規則則調用規則
					break;
				}
			}

			if (c=='F')
			{
				// 如果深度達到所設定的深度時即畫出線段
				if (depth==0||j==ruleNumber)
				{
					if(colorLock)
					{
						if(Count>75)
							Count=0;
						g=this.getGraphics();
						g.setColor(new Color(0,180+(75-Count++)%75,0));
					}
					double rad=2*Math.PI*direction/360;// 角度轉換
					double p=lengthF * Math.cos(rad);
					double q=lengthF * Math.sin(rad);
					b = new doublePoint(a.x+p, a.y+q);
					g.drawLine((int)(a.x), (int)(400-a.y), (int)(b.x) ,(int)(400-b.y));
					a = b; // 前一線段的終點為后一線段的起始點
				}
			}
			else if (c=='+') direction += rotation; //逆時針轉角度
			else if (c=='-') direction -= rotation; //順時針轉角度
			else if (c=='[')
			{  //入棧
				aPoint.addElement(a);
				sDirection = String.valueOf(direction);
				aDirection.addElement(sDirection);
			}
			else if (c==']')
			{  //出棧
				a=(doublePoint)(aPoint.elementAt(aPoint.size()-1));
				sDirection=(String)(aDirection.elementAt(aDirection.size()-1));
				direction=Double.valueOf(sDirection).doubleValue();
				aPoint.removeElementAt(aPoint.size()-1);
				aDirection.removeElementAt(aDirection.size()-1);
			}

		}

	}
	class doublePoint
	{ //為保存雙精度的點而新建一個類
		double x;
		double y;
		doublePoint(double x1,double y1)
		{x=x1;y=y1;}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本色道a无线码一区v| 中文字幕国产一区| 久久精品网站免费观看| 一区二区三区四区国产精品| 老色鬼精品视频在线观看播放| 成人av午夜影院| 精品人在线二区三区| 视频一区二区欧美| 成人精品小蝌蚪| 日韩美女主播在线视频一区二区三区| 国产精品久久久一区麻豆最新章节| 日本va欧美va欧美va精品| 成人午夜又粗又硬又大| 日韩一级精品视频在线观看| 一区二区三区在线视频播放| 成人在线综合网站| 精品久久久久久最新网址| 亚洲国产另类av| 色av一区二区| 亚洲免费资源在线播放| 国产·精品毛片| 欧美成人欧美edvon| 视频一区在线播放| 欧美性大战久久| 亚洲综合在线第一页| 99精品视频在线观看| 欧美国产激情一区二区三区蜜月| 国产麻豆精品在线| 日韩欧美在线网站| 蜜桃一区二区三区四区| 这里是久久伊人| 日本伊人色综合网| 成人动漫一区二区三区| 中文字幕精品一区二区三区精品| 国产宾馆实践打屁股91| 亚洲国产精品精华液2区45| 国产黄色精品网站| 欧美韩国日本一区| 91女厕偷拍女厕偷拍高清| 亚洲欧美日韩成人高清在线一区| 91视频www| 亚洲成人动漫av| 欧美精品成人一区二区三区四区| 午夜精品视频在线观看| 日韩三级在线免费观看| 精品一区二区三区视频在线观看| 久久婷婷国产综合精品青草| 国产一区91精品张津瑜| 国产精品国产三级国产普通话99| av亚洲精华国产精华精| 亚洲国产精品一区二区久久 | 99精品偷自拍| 亚洲欧美激情插| 欧美精品tushy高清| 黄色精品一二区| 国产精品麻豆一区二区| 精品视频在线免费看| 久久国产乱子精品免费女| 欧美激情艳妇裸体舞| 91极品视觉盛宴| 日本一道高清亚洲日美韩| 久久精品亚洲乱码伦伦中文| 91丝袜高跟美女视频| 午夜国产不卡在线观看视频| 久久婷婷国产综合国色天香| 97se亚洲国产综合在线| 免费成人在线观看视频| 国产精品久久久久aaaa| 欧美电影一区二区三区| 高清视频一区二区| 亚洲国产精品欧美一二99| 精品黑人一区二区三区久久| 色综合激情五月| 国产在线麻豆精品观看| 亚洲综合色视频| 国产午夜精品久久久久久久 | 亚洲国产另类精品专区| 国产欧美精品一区二区色综合| 色综合久久久久综合体桃花网| 免费观看91视频大全| 亚洲精品国产成人久久av盗摄| 2020国产精品| 在线观看91av| 色综合久久综合网欧美综合网| 精品一区二区三区在线播放 | 56国语精品自产拍在线观看| 97久久精品人人做人人爽| 国产专区欧美精品| 亚洲成人免费视| 中文字幕一区在线观看视频| 欧美xfplay| 欧美伦理视频网站| 91性感美女视频| 国产·精品毛片| 国产精品亚洲午夜一区二区三区| 天堂久久一区二区三区| 亚洲黄色在线视频| 中文字幕一区二区三区在线播放 | 日韩午夜精品视频| 欧美色图片你懂的| 日本韩国欧美三级| www.爱久久.com| 成人美女在线观看| 丁香六月综合激情| 国产成人免费在线| 国产乱理伦片在线观看夜一区| 激情综合网最新| 韩国理伦片一区二区三区在线播放 | 久久久综合精品| 精品久久一区二区三区| 欧美mv和日韩mv的网站| 欧美一区二区国产| 日韩一级完整毛片| 日韩欧美二区三区| 欧美成人精精品一区二区频| 在线播放/欧美激情| 69久久99精品久久久久婷婷| 91精品国产欧美一区二区成人| 欧美日韩二区三区| 欧美一卡二卡在线观看| 日韩欧美国产一二三区| 日韩欧美的一区| 亚洲精品一区二区精华| 国产三级一区二区| 中文字幕一区二| 日韩理论片网站| 亚洲精品乱码久久久久久 | 裸体在线国模精品偷拍| 国模大尺度一区二区三区| 国产成人免费高清| 99久久久久久| 欧美日韩精品免费| 日韩你懂的在线观看| 国产欧美综合在线| 亚洲欧美在线视频| 亚洲va韩国va欧美va精品| 久久精品国产秦先生| 国产高清久久久| 色噜噜久久综合| 欧美精品18+| 国产午夜精品一区二区三区视频 | 欧洲一区二区三区免费视频| 欧美一区二区三区四区高清 | 成人黄色片在线观看| 91传媒视频在线播放| 日韩午夜av电影| 欧美国产一区二区| 亚洲伊人伊色伊影伊综合网| 久久成人免费网| 91香蕉视频在线| 日韩欧美另类在线| 亚洲日本一区二区| 精品一区二区三区的国产在线播放| kk眼镜猥琐国模调教系列一区二区 | 久久精品一二三| 亚洲激情图片一区| 精品一区二区精品| 欧美视频一区二区三区在线观看 | 日韩一区二区三区在线观看| 国产亚洲视频系列| 午夜精品成人在线视频| 国产成+人+日韩+欧美+亚洲| 欧美人妖巨大在线| 国产精品久久久久久一区二区三区 | 2022国产精品视频| 亚洲国产日韩a在线播放性色| 国产精品一区不卡| 欧美精品v日韩精品v韩国精品v| 中文字幕一区二区三区乱码在线 | 中文字幕电影一区| 免费精品视频最新在线| 日本道精品一区二区三区| 久久久久国产免费免费| 青青草原综合久久大伊人精品| 99re这里只有精品首页| 国产日韩欧美不卡| 精品系列免费在线观看| 正在播放亚洲一区| 亚洲成人先锋电影| 91麻豆免费在线观看| 国产欧美综合色| 国产老肥熟一区二区三区| 日韩三区在线观看| 午夜欧美一区二区三区在线播放| 99国产精品国产精品久久| 国产精品免费视频一区| 国产美女一区二区| 精品国产欧美一区二区| 日韩**一区毛片| 91精品国产综合久久国产大片| 五月激情综合色| 欧美老年两性高潮| 偷拍亚洲欧洲综合| 555www色欧美视频| 午夜视频在线观看一区| 欧美精品99久久久**| 视频在线观看国产精品| 91精品国产福利在线观看| 日韩高清不卡一区二区三区| 日韩一区二区在线看|