计算机图像学坐标转换VC++实现
文件大小: 1k
源码售价: 10 个金币 积分规则     积分充值
资源说明:这个是我调试过的实验程序,简单好用 //此函数用于图形变换,用变换后顶点的坐标计算公式求其坐标值。 //顶点变换是由点的齐次坐标矩阵乘以变换矩阵得来的。 void C2DTransform::Caculate(array2d B) { ReadWorkpiece(); for(int i=1;i<=3;++i) { XT[i]=X[i]*B[1][1]+Y[i]*B[2][1]+C[i]*B[3][1]; YT[i]=X[i]*B[1][2]+Y[i]*B[2][2]+C[i]*B[3][2]; } } //绘制图形 void C2DTransform::Display() { CFrameWnd* pWnd=(CFrameWnd*)AfxGetApp()->m_pMainWnd; CDC* pdc=pWnd->GetActiveView()->GetDC(); CRect rt; ::GetClientRect(pWnd->GetActiveView()->m_hWnd,rt); DrawView (pdc,rt); pWnd->GetActiveView()->ReleaseDC(pdc); } void C2DTransform::moveto(double x,double y,CDC *pdc) { pdc->MoveTo((int)x,(int)y); } void C2DTransform::lineto(double x,double y,CDC *pdc) { pdc->LineTo((int)x,(int)y); } void C2DTransform::DrawView(CDC *pdc,CRect rt) { xt=rt.right/2; yt=rt.bottom /2; Caculate(A1); moveto(xt+XT[1],yt+YT[1],pdc); lineto(xt+XT[2],yt+YT[2],pdc); lineto(xt+XT[3],yt-YT[3],pdc); lineto(xt+XT[1],yt+YT[1],pdc);
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。