MFC 用MoveTo LineTo画图 如何放大缩小 求高手指导

在网上查了很多资料,都是载入位图,放大缩小的,菜鸟的是读取txt文件数据,用MoveTo和LineTo画图的,不知如何实现放大缩小。看网上很多都是m_pBitmap=ne... 在网上查了很多资料,都是载入位图,放大缩小的,菜鸟的是读取txt文件数据,用MoveTo和LineTo画图的,不知如何实现放大缩小。
看网上很多都是
m_pBitmap = new CBitmap;
m_pBitmap->LoadBitmap(IDB_BITMAP1);
我自己画图的程序是
CClientDC dc(this);
CRect rect;
GetClientRect(&rect);
dc.SetMapMode(MM_ANISOTROPIC);
dc.SetWindowExt(abs(b)*2.2,abs(a)*2);//设置坐标范围,经度[-179~189],纬度[-86~86],经纬度坐标变换为直角坐标的值
dc.SetViewportExt(rect.right,-rect.bottom);//正北、正东为正方向
dc.SetWindowOrg(-abs(b)*1.1,abs(a));//设置逻辑坐标原点在中心
// dc.SetViewportOrg(-rect.right/2,rect.bottom/2);//设置屏幕坐标原点在中心

for(i=0;i<sizeof(pDoc->flag)/4-1;i++)

{
dc.MoveTo(int(pDoc->cy[pDoc->flag[i]]),int(pDoc->cx[pDoc->flag[i]]));//画第一个点

for(j=pDoc->flag[i]+1 ;j<pDoc->flag[i+1];j++)
{
dc.LineTo(int(pDoc->cy[j]),int(pDoc->cx[j])); //画其余点

}

菜鸟不知道该如何修改了,还请大家指点迷津
在网上看的最多的是用StretchBlt()函数
展开
 我来答
金色潜鸟
2014-12-23 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5634万
展开全部
你可以自己增添放大缩小的系数(my_scale).
座标系,原点在 x0,y0
画x[i], y[i] 点 时, 添入 座标变换: xv = x0 + (x[i] - x0) * my_scale; yv = y0 + (y[i] - x0) * my_scale;
画 xv,yv 就可以了。
另一种办法 改变 Viewport 的设置。 Viewport 的视野大了,图就小了,视野小了,图就大了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式