}
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 -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: 在此添加控件通知处理程序代码 }
// TODO: 在此添加控件通知处理程序代码
// pDC->TextOutA(340,185,\
6
}
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)); } 7 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; 8 void CchazhiDlg::OnBnClickedButton3() { } BOOL CchazhiDlg::OnInitDialog() { CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); // 将“关于...”菜单项添加到系统菜单中。 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])))); 9 } } } pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 start=false; return TRUE; // 除非将焦点设置到控件,否则返回 TRUE void CchazhiDlg::OnSysCommand(UINT nID, LPARAM lParam) { } // 如果向对话框添加最小化按钮,则需要下面的代码 // 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序, // 这将由框架自动完成。 void CchazhiDlg::OnPaint() { start = true; drawxy(); xy.n = -1; for (int i = 0; i<20; i++) { } if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 xy.x[i] = 0; xy.y[i] = 0; if ((nID & 0xFFF0) == IDM_ABOUTBOX) { } else { } CDialogEx::OnSysCommand(nID, lParam); CAboutDlg dlgAbout; dlgAbout.DoModal(); 10