我在ondraw函数里面写入了
pDC->MoveTo(100,100);
pDC->LineTo(120,100);
pDC->LineTo(130,110);
pDC->LineTo(270,110);
pDC->LineTo(280,100);
pDC->LineTo(300,100);
pDC->LineTo(200,200);
pDC->LineTo(100,100);
pDC->MoveTo(100,100);
我通过这种方法的图是倒过来的,我如何使它变成正的 (绕y=200)镜像
请告诉我具体操作步骤
pDC->MoveTo(100,100);
pDC->LineTo(120,100);
pDC->LineTo(130,110);
pDC->LineTo(270,110);
pDC->LineTo(280,100);
pDC->LineTo(300,100);
pDC->LineTo(200,200);
pDC->LineTo(100,100);
pDC->MoveTo(100,100);
我通过这种方法的图是倒过来的,我如何使它变成正的 (绕y=200)镜像
请告诉我具体操作步骤
解决方案 »
- 如何将wince6.0上的软件移植到pc上?
- 当父窗体和它位于其上的控件都有OnPaint()方法时,谁先绘制?
- vc里没有像delphi的时钟控件吗?
- 看下drawcli例子的问题
- DirectShow开发的网络直播系统的实时性怎么样?
- 小白问题:VC的控件窗口被小弟关闭了,请问在哪里打开它?
- 求手机源代码!特别是短消息字符处理方面!!
- 各路高手救命呀!!!HELP!!马上给分!!
- CAboutDlg,CMainFrame,CPP1App,CPP1Doc,CPP1View,这些类都各是有什么用?
- 请问一个关于vc.net下com组件调用的问题
- 请教:OnDraw函数在以View为基类的函数中,初始化会自动执行;但是在以ListView为基类的函数中却不执行,这是啥原因?
- 请指教!ADO访问ODBC时,获得字段值的长度不对!
转换矩阵的知识,可以上网查看。MSDN的GDI+的参考文档中详细的介绍了坐标变化。
{
C????Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// 原始图
pDC->MoveTo(100,100);
pDC->LineTo(120,100);
pDC->LineTo(130,110);
pDC->LineTo(270,110);
pDC->LineTo(280,100);
pDC->LineTo(300,100);
pDC->LineTo(200,200);
pDC->LineTo(100,100);
pDC->MoveTo(100,100);// 下面的操作就是把它倒过来
pDC->SetMapMode(MM_ANISOTROPIC);
CSize sizeV = pDC->GetViewportExt();
pDC->SetViewportExt(sizeV.cx, -sizeV.cy);
pDC->SetViewportOrg(0, 200);
pDC->MoveTo(100,100);
pDC->LineTo(120,100);
pDC->LineTo(130,110);
pDC->LineTo(270,110);
pDC->LineTo(280,100);
pDC->LineTo(300,100);
pDC->LineTo(200,200);
pDC->LineTo(100,100);
pDC->MoveTo(100,100);
}结果就是屏幕上一个正,一个倒的图像
把SetMapMode前面的绘制函数去掉,就达到你的目的详细说明,请参看这个:
http://community.csdn.net/Expert/topic/4400/4400246.xml?temp=.4652216
CWindowsmapDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc); CRect rect;
pDC->GetWindow()->GetClientRect(&rect);
pDC->SetMapMode(MM_ANISOTROPIC);
CSize sizeV = pDC->GetViewportExt();
pDC->SetViewportExt(sizeV.cx, -sizeV.cy);
pDC->SetViewportOrg(0, rect.Height());这样,以后绘制的时候, 窗口的左下是00坐标, 右侧是x正向, 上面是y正向
和我们常用的笛卡儿坐标系的方式一直