CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  图形处理/算法

关于地图(*.map文件)的绘制问题,请教各位大虾,百分赠送!

楼主kalltt(^-^!)2004-05-03 18:10:55 在 VC/MFC / 图形处理/算法 提问

我遇到的问题是这样子的:  
          有一些描述地图信息的文件(*.map),其中头8个字节代表地图的长宽。后面每4个字节代表一个点的状态。从文件中读入数据之后,在绘制时遇到几个问题:  
          各个地图文件的大小不一(小的只有40×40,大的有2000×20000),但我希望绘制的时候区域是固定的(比如600×600象素),请问这应该如何实现。  
          还有,绘制一个地图点时用什么比较好?直接用SetPixel的话太小了,看不清楚。 问题点数:100、回复次数:3Top

1 楼wwch99(wanderer)回复于 2004-05-03 19:05:46 得分 100

大小不同,需要进行坐标变换。将地图坐标转到屏幕坐标。要设置地图坐标的左上点对应屏幕坐标的位置,需要的时候,设置成负值。绘制地图点,要好显示效果,可以做一个bmp,然后在位置点处显示。Top

2 楼kalltt(^-^!)回复于 2004-05-03 20:18:07 得分 0

不好意思,我不是很明白,能不能给个例子或者说明一下改调用那些函数,谢谢。Top

3 楼kalltt(^-^!)回复于 2004-05-04 12:15:18 得分 0

地图比例的问题解决了,但现在又碰到了刷新效率太慢的问题,我的绘制代码如下,请教各位能提高刷新效率的方法。  
   
  在Dialog的OnPaint函数内  
  其中m_pMapData为一个保存地图数据的对象,有三个内部成员:m_dwWidth,m_dwHeight和lpMapData(它是一个一维数组,保存地图数据)  
   
  dc.SetMapMode(MM_ISOTROPIC); //   设置模式  
   
  //   以下一段代码设置视图的纵横比例与地图的纵横比例一致  
  if(m_pMapData->m_dwWidth   ==   m_pMapData->m_dwHeight)  
  {  
          m_VWidth =   BASE_LENGTH;  
          m_VHeight =   BASE_LENGTH;  
  }  
  else  
  {  
          if(m_pMapData->m_dwWidth   >   m_pMapData->m_dwHeight)  
          {  
  m_VWidth =   BASE_LENGTH;  
  m_VHeight =   (   m_VWidth   *   m_pMapData->m_dwHeight   )   /   m_pMapData->m_dwWidth   ;  
          }  
          else  
          {  
  m_VHeight =   BASE_LENGTH;  
  m_VWidth =   (   m_VHeight   *   m_pMapData->m_dwWidth   )   /   m_pMapData->m_dwHeight   ;  
          }  
  }  
   
  dc.SetWindowExt(CSize(m_pMapData->m_dwWidth,m_pMapData->m_dwHeight)); //   设置地图的大小  
  dc.SetViewportExt(CSize(m_VWidth,m_VHeight)); //   设置视图大小  
   
  //   绘制地图  
  for(DWORD   X   =   0   ;   X   <   m_pMapData->m_dwWidth   ;   X++)  
  for(DWORD   Y   =   0   ;   Y   <   m_pMapData->m_dwHeight   ;   Y++)  
  dc.FillSolidRect(X,Y,1,1,m_pMapData->lpMapData[m_pMapData->m_dwWidth   *   X   +   Y]);  
   
  现在的问题是当地图大时,刷新极慢,求加快刷新速率的方法。Top

相关问题

  • 请教几个关于GDI+绘制地图的问题?
  • 请问怎样在VB中绘制地图??--有兴趣者欢迎参加--大家共同学习
  • :)有没有对等值线绘制与颜色填充算法感兴趣的朋友,快进来!100分大赠送
  • 绘制位图
  • 怎样绘制呀?
  • 绘制滚动条
  • 自己绘制Panel
  • 有懂GIS系统的大哥吗?有什么软件可以绘制电子地图吗?Mapinfo太烂了。谢谢告诉我一个可以下载的地方重奖!!!
  • 请在td里能否使用<map>地图影射,谢谢
  • 大赠送1

关键词

  • 坐标
  • 文件
  • dc
  • 数据
  • pmapdata
  • 地图
  • dwwidth
  • 绘制
  • dwheight
  • vheight

得分解答快速导航

  • 帖主:kalltt
  • wwch99

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo