2013年3月29日 星期五
c++ triangle
這是執行檔案,給大家下載去玩
https://skydrive.live.com/redir.aspx?cid=a4872f58128956b2&resid=A4872F58128956B2!268&parid=A4872F58128956B2!267&authkey=!APmGHg_J5c00EGw
下面則是列出MFC主要增加的部分
class CtriangleDlg : public CDialogEx //全域變數 抓輸入資料
{
public:
int number;
bool start;
//其他略
};
BOOL CtriangleDlg::OnInitDialog() //初始化痊癒變數的數值
{
start=0;
//其他略
}
void CtriangleDlg::OnPaint()
{
if (IsIconic())
{
//略
}
else
{
CPaintDC pDC(this);
if(start==1) //button按下時開始
{
pDC.MoveTo(100,500); //初始的三點座標
pDC.LineTo(300,100);
pDC.LineTo(500,500);
pDC.LineTo(100,500);
if(number==0)
;
else
triangle(100,500,300,100,500,500,0,number,&pDC);
}
CDialogEx::OnPaint();
}
}
void triangle(double x1,double y1,double x2,double y2,double x3,double y3,int count,int N,CPaintDC* draw)
{
double leftx=(x1+x2)/2;
double lefty=(y1+y2)/2;
double rightx=(x1+x3)/2;
double righty=(y1+y3)/2;
double downx=(x2+x3)/2;
double downy=(y2+y3)/2;
draw->MoveTo(int(leftx),int(lefty));
draw->LineTo(int(rightx),int(righty));
draw->LineTo(int(downx),int(downy));
draw->LineTo(int(leftx),int(lefty));
count++;
if(count<N)
{
triangle(leftx,lefty,x2,y2,downx,downy,count,N,draw);
triangle(x1,y1,leftx,lefty,rightx,righty,count,N,draw);
triangle(rightx,righty,downx,downy,x3,y3,count,N,draw);
}
}
void CtriangleDlg::OnBnClickedButton1()
{
CString tmp;
GetDlgItemText(IDC_EDIT1,tmp); //抓取edit box的資料
number= _ttoi(tmp.GetBuffer(0));
start=1;
Invalidate(); //畫面清空重新畫圖
}
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言