📄 drawmap1.cpp
字号:
#include <qapplication.h>#include <qpainter.h>#include<qstring.h>#include <stdio.h>#include<qscrollview.h>#include<qtextcodec.h>#include<qfont.h>#include "drawmap1.h"//#include "WayPoint.h"//#include "AStar.h"#include <iostream.h>struct data{ int a; int b;}data;int startid;int endid;Routemap::Routemap(QWidget *parent,const char *name) :QWidget(parent,name){ cout<<startid<<endl<<endid<<endl; setBackgroundColor(QColor(222,225,186)); setFixedSize(1500,1800); TPinfo.ReadWayPointFile("TuoPu.txt"); GHpath.InitNodeByWayPoint(&TPinfo); GHpath.FindPath(startid,endid,&TPinfo);}void Routemap::paintEvent(QPaintEvent *){ FILE *fd; // char code; char st[20]; int FromNode,ToNode,num,i; int x,y; // CWayPoint TPinfo; // CAStar GHpath; // TPinfo.ReadWayPointFile("TuoPu.txt"); // GHpath.InitNodeByWayPoint(&TPinfo); // GHpath.FindPath(800,1000,&TPinfo); QPainter p(this); // p.setPen(QPen(QColor(2,142,188),1,SolidLine)); if((fd=fopen("RoadCd.txt","r"))!=NULL) { while(fscanf(fd,"%d %d %d\n",&FromNode,&ToNode,&num)==3) { fscanf(fd,"%d %d\n",&x,&y); data.a=2*500*(x - 120081078)/167662; data.b=2*600*(30374923 - y)/(30374923 - 30171339); for(i=GHpath.PathPointCount;i>1;i--) { if(((FromNode==GHpath.PathList[i-1])&&(ToNode==GHpath.PathList[i-2]))||((ToNode==GHpath.PathList[i-1])&&(FromNode==GHpath.PathList[i-2]))) { p.setPen(QPen(QColor(0,0,0),3,SolidLine)); break; } else p.setPen(QPen(QColor(2,142,188),1,SolidLine)); } p.moveTo(data.a,data.b); for(i=1;i<num;i++) { fscanf(fd,"%d %d\n",&x,&y); data.a=2*500*(x - 120081078)/167662; data.b=2*600*(30374923 - y)/(30374923 - 30171339); p.lineTo(data.a,data.b); } } } fclose(fd); if((fd=fopen("RoadCdCyc.txt","r"))!=NULL) { while(fscanf(fd,"%d %d %d\n",&FromNode,&ToNode,&num)==3) { fscanf(fd,"%d %d\n",&x,&y); data.a=2*500*(x - 120081078)/167662; data.b=2*600*(30374923 - y)/(30374923 - 30171339); p.setPen(QPen(QColor(2,142,188),1,SolidLine)); p.moveTo(data.a,data.b); for(i=1;i<num;i++) { fscanf(fd,"%d %d\n",&x,&y); data.a=2*500*(x - 120081078)/167662; data.b=2*600*(30374923 - y)/(30374923 - 30171339); p.lineTo(data.a,data.b); } } } fclose(fd); if((fd=fopen("poi.txt","r"))!=NULL) { while(fscanf(fd,"%d %d %s\n",&x,&y,st)==3) { p.setPen(QColor(0,0,0)); p.setBrush(QColor("black")); data.a=(int)(2*500*(x-120081078)/167662); data.b=(int)(2*600*(30374923-y)/(30374923-30171339)); p.drawEllipse(data.a,data.b,5,5); QTextCodec *codec = QTextCodec::codecForName("GBK"); QString s1 = codec->toUnicode (st) ; // p.translate(data.a,data.b); // p.rotate(an); p.drawText(data.a,data.b,s1); // p.rotate(-an); // p.translate(-data.a,-data.b); } }fclose(fd);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -