#include "drawtree.h"
#include<math.h>
BOOL CMyApp::InitInstance()
{
this->m_pMainWnd=new CMainWnd();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return true;
}
CMyApp theapp;
int CMainWnd::OnCreate(LPCREATESTRUCT cs)
{
if(CFrameWnd::OnCreate(cs)==-1)
return -1;
sqt=sqrt((dt_x*dt_x+dt_y*dt_y+dt_z*dt_z)/2);
return 0;
}
CMainWnd::CMainWnd()
{
Create(NULL,_T("DrawTree"));
srand(time(NULL));
}
BEGIN_MESSAGE_MAP(CMainWnd,CFrameWnd)
ON_WM_CREATE()
ON_WM_PAINT()
END_MESSAGE_MAP()
void CMainWnd::OnPaint()
{
AfxGetMainWnd()->SetWindowText("123");
count=0;
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
int pa=rect.Width()/2;
int pb=rect.Height();
int pc=rect.Tall();
drawtree(&dc,pa,pb,pc,ang,len,wid);
}
void CMainWnd::drawtree(CPaintDC* pdc,int px,int py,double ang,double l,short width)
{
double rn=rand()%10*(PI/180);
INT rn2=rand()%9;
if(rn2>5) rn=0;
if(width<1) width=1;
int x=px+(int)(l*cos(ang));
int y=py-(int)(l*sin(ang));
int z=pc
pdc->MoveTo(px,py);
pdc->LineTo(x,y);
if(l<20)
return;
drawtree(pdc,x,y,z,ang-arg+rn,l*sqt,width-2);
drawtree(pdc,x,y,z,ang+arg+rn,l*sqt,width-2);
}