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

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

?? tree.cpp

?? 關于分形L系統的應用
?? CPP
字號:
// Tree.cpp: implementation of the Tree class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "fxs.h"
#include "Tree.h"
#include "Set.h"

#include <stack>
//using   namespace   std;

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Tree::Tree()
{
	m_count = 2;
	m_suofang = 1;
	m_yd = 0;
	m_fenjiao = 6;//分支傾斜度.調試完要改成6°
	m_suanfa = 0;
//	m_lastl = l*pow(m_jiedian,m_count-1);
	m_LStr = "F";
	m_rule = "F[+F][++F][-F]F[--F]F";
	m_bili = 1.0/3;//分支比例
	m_jiedian = 1.0/3;//節點比例; 
	m_l=l; //初始主干長.調試完要改成符合要求
	m_qingxie=90*DU; //主干傾斜度

}

Tree::~Tree()
{

}

void Tree::Draw (CPaintDC* pdc,int px,int py)
{
	py -= m_yd;
	m_l = l * m_suofang;
	if(m_suanfa==0){
	NoLSdraw(pdc,px,py,m_qingxie,m_l,m_count);//開始普通迭代
	} 
	else 
	{
		//單一LS文法
		///******************************************
		//避免多余的重復生成LS字符串和重復計算最后長度
		if(m_lsuofang != m_suofang || m_lc != m_count){
			m_lastl=m_l*pow(m_jiedian,m_count);
		
		}
		if(m_lrule != m_rule || m_lc != m_count){
			CString str =  "F";
			LSToStr(str,m_count);
		}
		m_lc = m_count;
		m_lsuofang = m_suofang;
		m_lrule = m_rule;
		LSdraw(pdc,m_LStr,px,py,m_qingxie,m_lastl);
		///******************************************
	}
}
///******************************************
//普通迭代
void Tree::NoLSdraw(CPaintDC* pdc,int px,int py,double qingxie,double l,int count) 
{   
    
 	int x=px+l*cos(qingxie);//終點
	int y=py-l*sin(qingxie);
	DrawLine(pdc,px,py,x,y);
	if(count--<=0)
		 return;
	int x1=px+l*cos(qingxie)*m_jiedian;//第1個分叉點
	int y1=py-l*sin(qingxie)*m_jiedian;
	int x2=px+l*cos(qingxie)*2*m_jiedian;//第2個分叉點
	int y2=py-l*sin(qingxie)*2*m_jiedian;
	NoLSdraw(pdc,x1,y1,qingxie+m_fenjiao*DU,l*m_bili,count);
	NoLSdraw(pdc,x1,y1,qingxie+2*m_fenjiao*DU,l*m_bili,count);	   
	NoLSdraw(pdc,x1,y1,qingxie-m_fenjiao*DU,l*m_bili,count);
	NoLSdraw(pdc,x2,y2,qingxie-2*m_fenjiao*DU,l*m_bili,count);	
	   
  
}



///******************************************
//單一LS文法
void Tree::LSdraw(CPaintDC* pdc,CString lstr,int px,int py,double qingxie,double l)
{
	
	 /*vector<int> i;
	 i.push_back();*/
	std::stack<int> sx,sy;
	std::stack<double> alpha;
	int count = 0;
	pdc->TextOut(0,50,"所用LS規則:"+m_rule);

	int x,y;
    for(int i=0;i<lstr.GetLength();i++)
	{

		switch (lstr.GetAt(i)) {
			case 'F':
				x=px+l*cos(qingxie)*pow(m_bili/m_jiedian,count);//新終點
				y=py-l*sin(qingxie)*pow(m_bili/m_jiedian,count);
				DrawLine(pdc,px,py,x,y);
				px = x;
				py = y;
				break;
			case '+':
				qingxie += m_fenjiao*DU;
				break;
			case '-':
				qingxie -= m_fenjiao*DU;
				break;
			case '[':
				sx.push(px);
				sy.push(py);
				alpha.push(qingxie);
				count++;
				break;
			case ']':
				px = sx.top();
				sx.pop();
				py = sy.top();
				sy.pop();
				qingxie = alpha.top();
				alpha.pop();
				count--;
				break;
			default:
				break;
		}
	}
 }

 void Tree::LSToStr(CString lstr,int count)
 {

	 if(--count < 0) {
		m_LStr = lstr;
		 return;
	 }
	 CString strtmp;
	 for(int i=0;i<lstr.GetLength();i++)
	 {		 
		 switch (lstr.GetAt(i)) {
		 case 'F':
			 strtmp += m_rule;
			 break;
		 case '+':
			 strtmp += '+';
			 break;
		 case '-':
			 strtmp += '-';
			 break;
		 case '[':
			 strtmp += '[';
			 break;
		 case ']':
			 strtmp += ']';
			 break;
		 default:
			 break;
		 }
	 }
	 LSToStr(strtmp,count);
 }

void Tree::DrawLine(CPaintDC* pdc,int px,int py,int x,int y)
{

	pdc->MoveTo(px,py); //畫線
	pdc->LineTo(x,y);
}

void Tree::Set()
{
	CSet set;
	set.Set(m_suanfa,m_fenjiao,m_yd,m_suofang,m_count,m_bili,m_rule);
	if(IDOK==set.DoModal())
	{
		m_count = set.m_count;
		m_fenjiao =	set.m_fenjiao;
		m_suofang = set.m_suofang;
		m_yd = set.m_yd;
		m_suanfa = set.m_suanfa;
		m_bili = set.m_bili;
		m_rule = set.m_rule;
		AfxGetMainWnd()->Invalidate();		
	}

		
}

void Tree::ZoneOut()
{
	m_suofang *= 1.5;
}

void Tree::ZoneIn()
{
	m_suofang /= 1.5;
}

void Tree::Up()
{
	m_yd -= 100;
}

void Tree::Down()
{
	m_yd += 100;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产美女一区二区三区| 欧美一区二区日韩一区二区| 国产一区二区视频在线| 奇米一区二区三区| 天天综合色天天| 天天操天天干天天综合网| 亚洲成av人片在www色猫咪| 亚洲福利视频导航| 视频一区国产视频| 青青草国产精品亚洲专区无| 免费看欧美女人艹b| 麻豆精品久久精品色综合| 蜜桃在线一区二区三区| 久久激情五月激情| 国产毛片精品国产一区二区三区| 国产麻豆一精品一av一免费| 国产99久久久国产精品潘金网站| 成人精品国产福利| 色综合久久中文综合久久牛| 在线观看免费一区| 欧美巨大另类极品videosbest| 欧美一区二区免费视频| 欧美成人女星排名| 国产日韩欧美精品在线| 国产精品国产精品国产专区不蜜 | 国产日产欧美一区二区视频| 日本一区二区在线不卡| 亚洲视频在线一区二区| 亚洲一区二区黄色| 免费人成黄页网站在线一区二区| 韩国欧美国产1区| 成人av免费在线| 欧洲一区二区三区免费视频| 欧美一区二区播放| 国产亚洲一区二区三区在线观看| 中文字幕一区二区三区在线播放| 亚洲国产中文字幕| 麻豆专区一区二区三区四区五区| 国产精品一区二区免费不卡| 99久久99久久精品免费看蜜桃| 91极品美女在线| 日韩三级精品电影久久久| 国产丝袜欧美中文另类| 亚洲免费观看高清完整版在线| 亚洲一区在线看| 久久 天天综合| 91视频观看免费| 欧美一区二区视频观看视频| 国产视频不卡一区| 亚洲图片一区二区| 国产精品一区二区在线看| 欧亚洲嫩模精品一区三区| 精品国产乱码久久久久久影片| 中文字幕综合网| 久久99九九99精品| 在线观看av一区二区| 亚洲精品一区二区三区蜜桃下载 | 天天色天天爱天天射综合| 国产制服丝袜一区| 色婷婷av久久久久久久| 欧美大片国产精品| 日韩理论片中文av| 国产在线观看一区二区| 欧美日免费三级在线| 久久精品人人做人人爽人人| 亚洲网友自拍偷拍| av午夜精品一区二区三区| 欧美大片一区二区| 亚洲高清一区二区三区| 成人免费视频播放| 精品国产91久久久久久久妲己 | 麻豆精品一区二区三区| 懂色一区二区三区免费观看| 7777精品伊人久久久大香线蕉完整版 | 激情亚洲综合在线| 欧美一区永久视频免费观看| 亚洲成人精品一区二区| 欧美日韩日日夜夜| 亚洲一级在线观看| 欧美日韩在线播放一区| 亚洲狠狠爱一区二区三区| 91小视频免费看| 一区二区三区日本| 欧美系列日韩一区| 亚洲成人先锋电影| 91精品婷婷国产综合久久竹菊| 丝袜亚洲另类欧美| 精品国产一区二区三区av性色 | 久久久久久久一区| 国产一区二区三区美女| 精品捆绑美女sm三区| 国产精品一区免费视频| 亚洲国产高清不卡| 色综合天天综合网天天狠天天| 亚洲婷婷综合久久一本伊一区| 在线免费视频一区二区| 亚洲午夜av在线| 日韩一区二区影院| 国产九色精品成人porny| 久久精品网站免费观看| a级高清视频欧美日韩| 亚洲免费看黄网站| 欧美日韩国产片| 国产精品一区二区在线看| 亚洲视频一区在线| 欧美一区二区三区日韩视频| 精品一区二区综合| 亚洲视频在线一区| 91精品国产综合久久久久久| 国产剧情一区二区| 亚洲一二三专区| 久久久久久99久久久精品网站| 97精品国产97久久久久久久久久久久| 亚洲午夜激情网站| 欧美精品一区二区三区蜜臀| 色女孩综合影院| 久久国产精品99精品国产| 亚洲精品国产品国语在线app| 日韩区在线观看| 色综合网站在线| 国产精品夜夜爽| 午夜电影网亚洲视频| 国产精品久久综合| 日韩精品一区二区三区在线播放 | 欧美国产激情一区二区三区蜜月| 欧美专区在线观看一区| 国产成人亚洲精品青草天美| 婷婷综合在线观看| 成人欧美一区二区三区小说| 久久噜噜亚洲综合| 欧美喷水一区二区| 色94色欧美sute亚洲线路一久| 国产一区欧美日韩| 免费的成人av| 亚洲一区二区三区不卡国产欧美| 中文字幕高清一区| 日韩免费看的电影| 欧美日韩国产综合一区二区三区| 91在线小视频| 波多野结衣精品在线| 国产黄色精品网站| 久久国产精品72免费观看| 日本亚洲三级在线| 婷婷丁香激情综合| 亚洲成年人影院| 夜夜嗨av一区二区三区| 亚洲色图一区二区三区| 国产精品久久久久永久免费观看 | 成人免费小视频| 国产精品婷婷午夜在线观看| 久久久久久久久久久电影| 日韩精品一区二区三区四区视频| 欧美人xxxx| 日韩一区二区三区免费观看| 欧美肥大bbwbbw高潮| 欧美日韩视频在线一区二区| 91成人看片片| 欧美日韩在线播放三区| 91精品一区二区三区久久久久久 | 日韩欧美资源站| 欧美不卡123| 久久久精品一品道一区| 国产片一区二区三区| 国产精品久久久久久久久久免费看 | 成人欧美一区二区三区黑人麻豆| 国产精品天美传媒沈樵| 中文一区在线播放| 亚洲欧美日韩一区二区| 亚洲男同1069视频| 亚洲尤物在线视频观看| 亚洲福利一二三区| 麻豆国产精品视频| 国产白丝网站精品污在线入口| 成人18视频在线播放| 欧洲精品一区二区| 制服.丝袜.亚洲.另类.中文| 日韩美一区二区三区| 久久久久久久久岛国免费| 亚洲欧洲美洲综合色网| 亚洲制服丝袜av| 狂野欧美性猛交blacked| 国产成人免费xxxxxxxx| 色播五月激情综合网| 91精品国产手机| 中文字幕成人网| 亚洲成人免费视频| 黄色成人免费在线| 色噜噜狠狠色综合中国| 欧美高清www午色夜在线视频| 久久色中文字幕| 亚洲一区二区三区四区的| 精品在线一区二区三区| 99国内精品久久| 日韩欧美的一区二区| 国产精品婷婷午夜在线观看| 婷婷综合久久一区二区三区| 成人avav在线| 欧美一区二区三区四区高清| 成人欧美一区二区三区在线播放| 免费精品视频在线|