当前位置: 首页 > news >正文

开一家网店沈阳网站建设优化

开一家网店,沈阳网站建设优化,中国外协加工网最新订单,网站类网站开发前文链接#xff1a;QGraphicsView实现简易地图3『局部加载-地图缩放』 当鼠标拖动地图移动时#xff0c;需要实时增补和删减瓦片地图#xff0c;大致思路是计算地图从各方向移动时进出视口的瓦片坐标值#xff0c;根据变化后的瓦片坐标值来增减地图瓦片#xff0c;以下将…前文链接QGraphicsView实现简易地图3『局部加载-地图缩放』 当鼠标拖动地图移动时需要实时增补和删减瓦片地图大致思路是计算地图从各方向移动时进出视口的瓦片坐标值根据变化后的瓦片坐标值来增减地图瓦片以下将提供实现此需求的核心代码。 1、动态演示效果 2、静态展示图片 核心代码 void MapView::moveScene() {QString appPath QApplication::applicationDirPath();QString dirPath QString(%1/MapData/GaoDeMap/Map/MapPng/L0%2).arg(appPath).arg(m_curLevel 1);// 视口宽度和高度int w viewport()-width();int h viewport()-height();// 计算呈现的瓦片地图左上角的场景坐标和视口坐标、呈现的瓦片地图右下角的场景坐标和视口坐标QPoint topLeftScenePos(m_topLeftTileCoord.x * PIXMAP_SIZE, m_topLeftTileCoord.y * PIXMAP_SIZE);QPointF topLeftViewPos mapFromScene(topLeftScenePos);QPoint bottomRightScenePos(m_bottomRightTileCoord.x * PIXMAP_SIZE, m_bottomRightTileCoord.y * PIXMAP_SIZE);QPointF bottomRightViewPos mapFromScene(bottomRightScenePos);// 1、水平瓦片坐标控制判断最左侧瓦片是否完全进入视口、最右侧瓦片是否完全离开视口if (topLeftViewPos.x() 0){int count qCeil(topLeftViewPos.x() / PIXMAP_SIZE); // 左侧进入视口瓦片数量int oldLeftTileCoordX m_topLeftTileCoord.x; // 保存原左侧瓦片坐标Xm_topLeftTileCoord.x - count; // 更新现左侧瓦片坐标X// 增加从左侧进入视口的图片for (int row m_topLeftTileCoord.y; row m_bottomRightTileCoord.y; row){for (int col m_topLeftTileCoord.x; col oldLeftTileCoordX; col){QString fileName QString(%1/Map_%2-%3.png).arg(dirPath).arg(QString::number(row 1).rightJustified(2, 0)).arg(QString::number(col 1).rightJustified(2, 0));QPixmap pixmap(fileName);QGraphicsPixmapItem *item new QGraphicsPixmapItem(pixmap);item-setPos(PIXMAP_SIZE * col, PIXMAP_SIZE * row);m_scene-addItem(item);m_mapItems[row][col] item;}}}if (bottomRightViewPos.x() w){int count qFloor((bottomRightViewPos.x() - w) / PIXMAP_SIZE) 1; // 右侧离开视口瓦片数量int oldRightTileCoordX m_bottomRightTileCoord.x; // 保存原右侧瓦片坐标Xm_bottomRightTileCoord.x - count; // 更新现右侧瓦片坐标X// 删除从右侧离开视口的图片for (int row m_topLeftTileCoord.y; row m_bottomRightTileCoord.y; row){for (int col oldRightTileCoordX; col m_bottomRightTileCoord.x; --col){QGraphicsPixmapItem *item m_mapItems[row][col];m_scene-removeItem(item);m_mapItems[row].remove(col);delete item;}}}// 2、水平瓦片坐标控制判断最右侧瓦片是否完全进入视口、最左侧瓦片是否完全离开视口if (bottomRightViewPos.x() 255 w){int count qCeil((w - (bottomRightViewPos.x() 255)) / PIXMAP_SIZE); // 右侧进入视口瓦片数量int oldRightTileCoordX m_bottomRightTileCoord.x; // 保存原右侧瓦片坐标Xm_bottomRightTileCoord.x count; // 保存现右侧瓦片坐标X// 增加从右侧进入视口的图片for (int row m_topLeftTileCoord.y; row m_bottomRightTileCoord.y; row){for (int col m_bottomRightTileCoord.x; col oldRightTileCoordX; --col){QString fileName QString(%1/Map_%2-%3.png).arg(dirPath).arg(QString::number(row 1).rightJustified(2, 0)).arg(QString::number(col 1).rightJustified(2, 0));QPixmap pixmap(fileName);QGraphicsPixmapItem *item new QGraphicsPixmapItem(pixmap);item-setPos(PIXMAP_SIZE * col, PIXMAP_SIZE * row);m_scene-addItem(item);m_mapItems[row][col] item;}}}if (topLeftViewPos.x() 255 0){int count qFloor(fabs(topLeftViewPos.x()) / PIXMAP_SIZE); // 左侧离开视口瓦片数量int oldLeftTileCoordX m_topLeftTileCoord.x; // 保存原左侧瓦片坐标Xm_topLeftTileCoord.x count; // 保存现左侧瓦片坐标X// 删除从左侧离开视口的图片for (int row m_topLeftTileCoord.y; row m_bottomRightTileCoord.y; row){for (int col oldLeftTileCoordX; col m_topLeftTileCoord.x; col){QGraphicsPixmapItem *item m_mapItems[row][col];m_scene-removeItem(item);m_mapItems[row].remove(col);delete item;}}}// 3、垂直瓦片坐标控制判断最上侧瓦片是否完全进入视口最下侧瓦片是否完全离开视口if (topLeftViewPos.y() 0){int count qCeil(topLeftViewPos.y() / PIXMAP_SIZE); // 上侧进入视口瓦片数量int oldTopTileCoordY m_topLeftTileCoord.y; // 保存原上侧瓦片坐标Ym_topLeftTileCoord.y - count; // 保存现上侧瓦片坐标Y// 增加从上侧进入视口的图片for (int row m_topLeftTileCoord.y; row oldTopTileCoordY; row){for (int col m_topLeftTileCoord.x; col m_bottomRightTileCoord.x; col){QString fileName QString(%1/Map_%2-%3.png).arg(dirPath).arg(QString::number(row 1).rightJustified(2, 0)).arg(QString::number(col 1).rightJustified(2, 0));QPixmap pixmap(fileName);QGraphicsPixmapItem *item new QGraphicsPixmapItem(pixmap);item-setPos(PIXMAP_SIZE * col, PIXMAP_SIZE * row);m_scene-addItem(item);m_mapItems[row][col] item;}}}if (bottomRightViewPos.y() h){int count qFloor((bottomRightViewPos.y() - h) / PIXMAP_SIZE) 1; // 下侧离开视口瓦片数量int oldBottomTileCoordY m_bottomRightTileCoord.y; // 保存原下侧瓦片坐标Ym_bottomRightTileCoord.y - count; // 保存现下侧瓦片坐标Y// 删除从下侧离开视口的图片for (int row oldBottomTileCoordY; row m_bottomRightTileCoord.y; --row){for (int col m_topLeftTileCoord.x; col m_bottomRightTileCoord.x; col){QGraphicsPixmapItem *item m_mapItems[row][col];m_scene-removeItem(item);m_mapItems[row].remove(col);delete item;}}}// 4、垂直瓦片坐标控制判断最下侧瓦片是否完全进入视口最上侧瓦片是否完全离开视口if (bottomRightViewPos.y() 255 h){int count qCeil((h - (bottomRightViewPos.y() 255)) / PIXMAP_SIZE); // 下侧进入视口瓦片数量int oldBottomTileCoordY m_bottomRightTileCoord.y; // 保存原下侧瓦片坐标Ym_bottomRightTileCoord.y count; // 保存现下侧瓦片坐标Y// 增加从下侧进入视口的图片for (int row m_bottomRightTileCoord.y; row oldBottomTileCoordY; --row){for (int col m_topLeftTileCoord.x; col m_bottomRightTileCoord.x; col){QString fileName QString(%1/Map_%2-%3.png).arg(dirPath).arg(QString::number(row 1).rightJustified(2, 0)).arg(QString::number(col 1).rightJustified(2, 0));QPixmap pixmap(fileName);QGraphicsPixmapItem *item new QGraphicsPixmapItem(pixmap);item-setPos(PIXMAP_SIZE * col, PIXMAP_SIZE * row);m_scene-addItem(item);m_mapItems[row][col] item;}}}if (topLeftViewPos.y() 255 0){int count qFloor(fabs(topLeftViewPos.y()) / PIXMAP_SIZE); // 上侧离开视口瓦片数量int oldTopTileCoordY m_topLeftTileCoord.y; // 保存原上侧瓦片坐标Ym_topLeftTileCoord.y count; // 保存现上侧瓦片坐标Y// 删除从上侧离开视口的图片for (int row oldTopTileCoordY; row m_topLeftTileCoord.y; row){for (int col m_topLeftTileCoord.x; col m_bottomRightTileCoord.x; col){QGraphicsPixmapItem *item m_mapItems[row][col];m_scene-removeItem(item);m_mapItems[row].remove(col);delete item;}}} }
http://www.hkea.cn/news/14379502/

相关文章:

  • 邯郸高端网站建设价格wordpress 固定链接插件
  • 关键词智能优化排名长沙网站seo推广
  • 网站建设与管理题目泰安直聘网官网
  • 网站变成手机网站做公司网站 需要注意什么
  • 网站建设人员需求专业的google推广公司
  • 常州seo建站seo排名软件哪个好
  • 做电商怎么入门百度关键词怎么优化
  • 检察院门户网站建设情况邢台短视频优化
  • 网站建设视频技术论坛wordpress在线咨询
  • 网站平台运营方案校园兼职网站建设
  • 北京网站建设学习月夜直播下载
  • 如何创业做网站公司展厅
  • 对网站备案的认识网站建设账务处理
  • 静态网站提交表单怎么做国内大型游戏外包公司
  • 昆明网站制作推荐网站备份了怎么恢复
  • 网站导航优化uc下载的视频禁止自动播放
  • 网站关键词快速排名技术网页设计与制作教程第六版第六章源代码
  • 成都专业建站公司ui作品集 网站怎么做
  • 小蜜蜂网站建设创建网站目录结构应遵循的方法
  • 电商网站 建设步骤新加坡设计公司排行
  • 专业做能源招聘的网站北京专业网站搭建公司
  • 免费的工程网站厦门免费做网站
  • 外贸网站建设多少钱网址大全介绍
  • 网站转化率偏低怎么办开发网站
  • 高端电子商务网站建设蓝顿长沙网站制作公司
  • 柳州住房和城乡建设局网站html制作网站的步骤
  • 茌平网站建设费用长沙公共资源交易中心官网
  • 17网站一起做单页站好做seo吗
  • 石家庄做网站推广现在做什么网站好
  • wap网站建设费用怎样提高网站的权重