}
}
SendMessage(WM_ICONERASEBKGND, reinterpret_cast
int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // 绘制图标
dc.DrawIcon(x, y, m_hIcon);
else { }
CDialogEx::OnPaint();
//当用户拖动最小化窗口时系统调用此函数取得光标 //显示。
HCURSOR CchazhiDlg::OnQueryDragIcon() { }
void CchazhiDlg::OnBnClickedButton1() {
if(start){
CWnd *pwnd=AfxGetMainWnd(); CDC *pDC=pwnd->GetDC();
CPen pen(PS_SOLID,2,RGB(255,0,0)); pDC->SelectObject(&pen);
pDC->MoveTo(int(uchangex(xy.x[0])),int (uchangey((xy.y[0])))); for(int x=int(xy.x[0]);x<=xy.x[xy.n];x++){ double result=0;
for(int i=0;i<=xy.n;i++){ }
pDC->LineTo(int(uchangex(x)),int (uchangey(result))); Sleep(10); }
result+=l(x,i,xy.n,xy)*xy.y[i]; return static_cast
11
}
pwnd->ReleaseDC(pDC); }
// TODO: 在此添加控件通知处理程序代码
void CchazhiDlg::OnBnClickedButton4() { }
void drawxy(){ }
double changex(double x){ }
double uchangex(double x){ return x+350; }
double changey(double y){ }
double uchangey(double y){
return -y+180; return x-350;
CWnd *pwnd=AfxGetMainWnd(); CDC *pDC=pwnd->GetDC(); pDC->MoveTo(120,180); pDC->LineTo(600,180); pDC->LineTo(594,174); pDC->MoveTo(600,180); pDC->LineTo(594,186); pDC->MoveTo(350,380); pDC->LineTo(350,0); pDC->LineTo(356,6); pDC->MoveTo(350,0); pDC->LineTo(344,6); pDC->MoveTo(120,0); pDC->TextOutA(355,0,\); pDC->TextOutA(590,182,\); pwnd->ReleaseDC(pDC);
// TODO: 在此添加控件通知处理程序代码
// pDC->TextOutA(340,185,\
12
return -y+180; }
void CchazhiDlg::OnLButtonDown(UINT nFlags, CPoint point) { }
double l(double xv,int i,int n,date xy) {
double t=1;
for(int j=0;j<=n;j++) if(j!=i)
t=t*(xv-xy.x[j])/(xy.x[i]-xy.x[j]); return t; }
}
CDialogEx::OnLButtonDown(nFlags, point);
}
temp=xy.y[j]; xy.y[j]=xy.y[j+1]; xy.y[j+1]=temp; }
for(int i=0;i for(int j=0;j if(xy.x[j]>xy.x[j+1]){ double temp=0; temp=xy.x[j]; xy.x[j]=xy.x[j+1]; xy.x[j+1]=temp; // TODO: 在此添加消息处理程序代码和/或调用默认值 CWnd *pwnd=AfxGetMainWnd(); CDC *pDC=pwnd->GetDC(); if(start){ } if(point.x>120&&point.x<600&&point.y>0&&point.y<380){ pDC->Ellipse(point.x-2,point.y-2,point.x+2,point.y+2); xy.n++; xy.x[xy.n]=changex(double (point.x)); xy.y[xy.n]=changey(double (point.y)); } 13 void CchazhiDlg::OnBnClickedButton2() { for(int i=xy.x[0];i<=xy.x[xy.n];i++){ } pwnd->ReleaseDC(pDC); } // TODO: 在此添加控件通知处理程序代码 double result=0; for(int j=0;j<=xy.n;j++){ } pDC->LineTo(int ( uchangex(i)),int (uchangey(result))); Sleep(10); double temp=1; for(int k=0;k temp*=(i-xy.x[k]); for(int j=1;j<=xy.n;j++){ } for(int i=j;i<=xy.n;i++) chashang[i][j]=(chashang[i][j-1]-chashang[i-1][j-1])/(xy.x[i]-xy.x[i-j]); for(int i=0;i<=xy.n;i++){ } chashang[i][0]=xy.y[i]; chashang=new double *[20]; for(int i=0;i<20;i++){ chashang[i]=new double [20]; for(int j=0;j<20;j++){ chashang[i][j]=0; } } if(start){ CWnd *pwnd=AfxGetMainWnd(); CDC *pDC=pwnd->GetDC(); CPen pen(PS_SOLID,2,RGB(0,0,0)); pDC->SelectObject(&pen); pDC->MoveTo(int(uchangex(xy.x[0])),int (uchangey((xy.y[0])))); double **chashang; result+=chashang[j][j]*temp; 14 } void CchazhiDlg::OnBnClickedButton3() { } { CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); // 将“关于...”菜单项添加到系统菜单中。 BOOL CchazhiDlg::OnInitDialog() CubicInterpolation *cubicInterpolation = new CubicInterpolation(); cubicInterpolation->initVector(xy.x, xy.y, 0, 0, xy.n+1); cubicInterpolation->calcCoefs(); for(int i=0;i for(int x=xy.x[i];x double result = cubicInterpolation->evaluate(x); } pDC->LineTo(int (uchangex(x)),int (uchangey(result))); } Sleep(10); CWnd *pwnd=AfxGetMainWnd(); CDC *pDC=pwnd->GetDC(); CPen pen(PS_SOLID,2,RGB(100,255,255)); pDC->SelectObject(&pen); pDC->MoveTo(int(uchangex(xy.x[0])),int (uchangey((xy.y[0])))); 15