资源说明:这个是我调试过的实验程序,简单好用
//此函数用于图形变换,用变换后顶点的坐标计算公式求其坐标值。
//顶点变换是由点的齐次坐标矩阵乘以变换矩阵得来的。
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);
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。