下载后可任意编辑Bezier 曲线的绘制实验报告一、程序实现环境1 操作系统:Windows XP 、Windows72.编程语言:C++3.程序实现环境:Visual C++ 6.0二、算法思想三、使用说明程序界面如下图:用户可以在编辑框中输入 4 个控制点的坐标,也可以通过在绘图区内直接通过鼠标的单击指定 4 个控制点的位置,输入 4 个控制下载后可任意编辑端点后,单击“画 Bezier 曲线”按钮即可绘制 Bezier 曲线。四、实验结果五、程序代码(关键代码)void CMFC_BezierCurve2Dlg::OnLButtonDown(UINT nFlags, CPoint point) {if(pointOrd==1)//原点(490,270){m_p1_x = point.x - 490;m_p1_y = 270 - point.y;}if(pointOrd==2){CDC *pDC=GetDC();pDC->MoveTo(490+m_p1_x, 270-m_p1_y);pDC->LineTo(point.x, point.y);m_p2_x = point.x - 490;m_p2_y = 270 - point.y;}if(pointOrd==3){CDC *pDC=GetDC();pDC->MoveTo(490+m_p2_x, 270-m_p2_y);pDC->LineTo(point.x, point.y);m_p3_x = point.x - 490;m_p3_y = 270 - point.y;}if(pointOrd==4){CDC *pDC=GetDC();pDC->MoveTo(490+m_p3_x, 270-m_p3_y);pDC->LineTo(point.x, point.y);m_p4_x = point.x - 490;m_p4_y = 270 - point.y;}下载后可任意编辑pointOrd++;UpdateData(FALSE);CDialog::OnLButtonDown(nFlags, point);}void GetCnk (int n, int *c){int i,k;for(k=0; k<=n; k++){c[k]=1;for(i=n; i>=k+1; i--)c[k]=c[k]*i;for(i=n-k; i>=2; i--)c[k]=c[k]/i;}}void CMFC_BezierCurve2Dlg::GetPointPos(int ControlN, double t, int *c){int k, n=ControlN-1;double Bernstein;Pt.x=0.0;Pt.y=0.0;for(k=0; kMoveTo(490+m_p1_x, 270-m_p1_y);pDC->LineTo(490+m_p2_x, 270-m_p2_y);pDC->LineTo(490+m_p3_x, 270-m_p3_y);pDC->LineTo(490+m_p4_x, 270-m_p4_y);下...