⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drawmap.cpp

📁 在LINUX下实现路径规划的程序中的主菜单界面的编辑程序。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#include <qapplication.h>#include <qpainter.h>#include <stdio.h>#include <qscrollview.h>#include <qtextcodec.h>#include <qfont.h>#include <qpushbutton.h>#include <qlineedit.h>#include <qlayout.h>#include <qpixmap.h>#include <qmime.h>#include <qlistview.h>#include <qtranslator.h>#include <iostream.h>#include <string.h>#include "drawmap.h"#include "mainwindow.h"#include "mainmenu.h"struct qj{   int qjx;   int qjy;}qj[3000];struct hupo{   int hpx;   int hpy;}hupo[300];                                                                                struct shuiku{   int skx;   int sky;}shuiku[1000];struct lvdi{   int ldx;   int ldy;}lvdi[600];struct jumindi{   int jmdx;   int jmdy;}jumindi[1000];struct shuangxianhe{   int sxhx;   int sxhy;}shuangxianhe[1000];struct daolu1    {   int dl1x;   int dl1y;}daolu1[5000];struct daolu2     {   int dl2x;   int dl2y;}daolu2[5000]; struct daolu3     {   int dl3x;   int dl3y;}daolu3[25000];struct tielu      {   int tlx;   int tly;}tielu[5000]; struct gongyuanlu{   int gylx;   int gyly;}gongyuanlu[5000];struct gaosu{   int gsx;   int gsy;}gaosu[100];struct qiao{   int qx;   int qy;}qiao[1000];struct wenzi{   int wzx;   int wzy;}wenzi[1000];struct diwu2{    int dw2x;   int dw2y;}diwu2[1000];float z=1.0;float ud=0.0;float rl=0.0;float z1[100];float z2[100];FILE *fpp1;char zifu[20];int m=0;QString qs;QString  Name;float x1=-100.0;float y11=-100.0;int main(int argc,char **argv){   QApplication a(argc,argv);   QFont font("unifont",5);   a.setFont(font);   QTranslator *translator = new QTranslator(0);   translator->load("drawmap.qm", ".");   a.installTranslator(translator);   QScrollView w;     //w.setFixedSize(150,200);   w.setCaption(QObject::tr("Hangzhou map"));   MainWindow *m=new MainWindow;                     w.addChild(m);      a.setMainWidget(&w);   w.show();    return a.exec();}MainWindow::MainWindow(QWidget *parent,const char *name)          :QWidget(parent,name){ QPushButton *enxiao=new QPushButton(tr("zoom in"),this,"enxiao"); connect(enxiao,SIGNAL(clicked()),this,SLOT(suoxiao()));  QPushButton *enlarge=new QPushButton(tr("zoom out"),this,"enlarge"); connect(enlarge,SIGNAL(clicked()),this,SLOT(fangda()));  QPushButton *up1=new QPushButton(tr("up"),this,"up1"); connect(up1,SIGNAL(clicked()),this,SLOT(up()));  QPushButton *down1=new QPushButton(tr("down"),this,"down1"); connect(down1,SIGNAL(clicked()),this,SLOT(down()));  QPushButton *right1=new QPushButton(tr("right"),this,"right1"); connect(right1,SIGNAL(clicked()),this,SLOT(right()));  QPushButton *left1=new QPushButton(tr("left"),this,"left1"); connect(left1,SIGNAL(clicked()),this,SLOT(left())); QPushButton *reset1=new QPushButton(tr("reset"),this,"reset1");  connect(reset1,SIGNAL(clicked()),this,SLOT(reset())); QPushButton *routeplan=new QPushButton(tr("Route Plan"),this);  connect(routeplan,SIGNAL(clicked()),this,SLOT(popupDialog()));QListView *w = new QListView(this );w->setRootIsDecorated( true );w->addColumn( QString(tr("DiMing")) );w->addColumn(QString("NUM"));QListViewItem *i1= new QListViewItem( w, QString(tr("Shangchengqu")));QListViewItem *i2 = new QListViewItem( w, QString(tr("Xihuqu")) );QListViewItem *i3 = new QListViewItem( w, QString(tr("Gongshuqu")) );QListViewItem *i4 = new QListViewItem( w, QString(tr("Xiachengqu")) );QListViewItem *i5 = new QListViewItem( w, QString(tr("Jiangganqu")) ); i1->setOpen( true ); i2->setOpen( true ); i3->setOpen( true ); i4->setOpen( true ); i5->setOpen( true ); if((fpp1=fopen("shangchengqu.txt","r"))!=NULL)   {      while(fscanf(fpp1,"%f %f %s\n",&z1[m],&z2[m],zifu)==3)      {        QTextCodec *codec = QTextCodec::codecForName("GBK");        qs = codec->toUnicode (zifu)  ;        new QListViewItem( w->firstChild(), qs, QString::number(m));         m++;      }  }fclose(fpp1); if((fpp1=fopen("xiachengqu.txt","r"))!=NULL)   {      while(fscanf(fpp1,"%f %f %s\n",&z1[m],&z2[m],zifu)==3)      {        QTextCodec *codec = QTextCodec::codecForName("GBK");        qs = codec->toUnicode (zifu)  ;        new QListViewItem( w->firstChild()->nextSibling(), qs,QString::number(m));        m++;                                                                                      }   }fclose(fpp1); if((fpp1=fopen("gongshuqu.txt","r"))!=NULL)   {      while(fscanf(fpp1,"%f %f %s\n",&z1[m],&z2[m],zifu)==3)      {        QTextCodec *codec = QTextCodec::codecForName("GBK");        qs = codec->toUnicode (zifu)  ;        new QListViewItem( w->firstChild()->nextSibling()->nextSibling(), qs,QString::number(m));        m++;                                                                            }}fclose(fpp1); if((fpp1=fopen("jiangganqu.txt","r"))!=NULL)   {      while(fscanf(fpp1,"%f %f %s\n",&z1[m],&z2[m],zifu)==3)      {        QTextCodec *codec = QTextCodec::codecForName("GBK");        qs = codec->toUnicode (zifu)  ;                                                                    new QListViewItem( w->firstChild()->nextSibling()->nextSibling()->nextSibling(), qs,QString::number(m));        m++;                                                                                 }   }fclose(fpp1); if((fpp1=fopen("xihuqu.txt","r"))!=NULL)   {      while(fscanf(fpp1,"%f %f %s\n",&z1[m],&z2[m],zifu)==3)      {        QTextCodec *codec = QTextCodec::codecForName("GBK");        qs = codec->toUnicode (zifu)  ;        new QListViewItem( w->firstChild()->nextSibling()->nextSibling()->nextSibling()->nextSibling(), qs, QString::number(m));        m++;                                                                              }   }fclose(fpp1);connect(w,SIGNAL(doubleClicked( QListViewItem *  )),this,SLOT(reset())); connect(w,SIGNAL(doubleClicked( QListViewItem *  )),this,SLOT(chaxun( QListViewItem *)));connect(w,SIGNAL(doubleClicked( QListViewItem *  )),this,SLOT(fangda()));Drawmap *na=new Drawmap(this,"Drawmap");connect(enxiao,SIGNAL(clicked()),na,SLOT(update()));connect(enlarge,SIGNAL(clicked()),na,SLOT(update())); connect(up1,SIGNAL(clicked()),na,SLOT(update())); connect(down1,SIGNAL(clicked()),na,SLOT(update()));connect(right1,SIGNAL(clicked()),na,SLOT(update()));connect(left1,SIGNAL(clicked()),na,SLOT(update())); connect(reset1,SIGNAL(clicked()),na,SLOT(update()));connect(w,SIGNAL(doubleClicked( QListViewItem *  )),na,SLOT(update()));   QVBoxLayout *leftLayout=new QVBoxLayout;   leftLayout->addWidget(enxiao);   leftLayout->addWidget(enlarge);   leftLayout->addWidget(up1);   leftLayout->addWidget(down1);   leftLayout->addWidget(right1);   leftLayout->addWidget(left1);   leftLayout->addWidget(reset1);   leftLayout->addWidget(routeplan);   leftLayout->addWidget(w);   QGridLayout *rightLayout=new QGridLayout;   rightLayout->addWidget(na,0,0);   QHBoxLayout *mainLayout=new QHBoxLayout(this);   mainLayout->addLayout(leftLayout);   mainLayout->addLayout(rightLayout);}Drawmap::Drawmap(QWidget *parent,const char *name)       :QWidget(parent,name){    setBackgroundColor(QColor(225,255,255));   setFixedSize(2000,2000);    }void MainWindow::suoxiao(){ ud=ud+155*(z-1); rl=rl+125*(z-1); z=z/2;}void MainWindow::fangda(){ z=z*2; ud=ud-155*(z-1); rl=rl-125*(z-1);} void MainWindow::up(){ ud=ud-30;} void MainWindow::down(){ ud=ud+30;} void MainWindow::left(){ rl=rl-30;} void MainWindow::right(){ rl=rl+30;}void MainWindow::reset(){rl=0; ud=0; z=1; x1=-100.0; y11=-100.0;}void MainWindow::popupDialog(){ mainmenubase *f = new mainmenubase( 0, "jiemian"); f->exec(); delete f;}void MainWindow::chaxun( QListViewItem *i ){ if ( !i )  return;   QListViewItem *item=(QListViewItem *)i;int nx;Name=item->text(1);for(nx=0;nx<100;nx++){if(Name==QString::number(nx)){x1=z*500*(z1[nx]-120.081078)/0.167662;y11=z*607*(30.374923-z2[nx])/0.203584;rl=rl-x1+80;ud=ud-y11+80;x1=x1-50;y11=y11-80;cout<<Name<<endl;}}}void Drawmap::paintEvent(QPaintEvent *) {    FILE *fdl1,*fdl2,*fdl3,*ftl,*fqj,*fhp,*fsk,*fld,*fjmd,*fgyl,*fsxh,*fgs,*fq,*fdw,*fsplm,*fdw2;   char code[20];   char zhongwen[20];   long x;   long y;   float x2;   float y2;   int qjnum;      int hpnum;   int ldnum;   int sxhnum;   int sknum;   int jmdnum;   int i=0;   int j=0;   int k=0;   int l=0;   int m=0;   int n=0;   int o=0;   int q=0;   int r=0;   int a=0;      int b=0;   int c=0;   int d=0;   int e=0;   int f=0;   int t1=1;   int t2=1;   int t3=1;   int t4=1;   int t5=1;   QPainter p(this);   if((fqj=fopen("hzqj1.txt","r"))!=NULL)   {      p.setBrush(QColor(255,222,222));      p.setPen(NoPen);      if(fscanf(fqj,"%d",&qjnum)==1)      {         QPointArray parray(qjnum);         for(a=0;a<qjnum;a++)         {            if(fscanf(fqj,"%ld %ld",&x,&y)==2)            {               qj[a].qjx=(int)(z*500*(x-120081078)/167662+rl);               qj[a].qjy=(int)(z*607*(30374923-y)/203584+ud);               parray.setPoint(a,qj[a].qjx,qj[a].qjy);            }         }           p.drawPolygon(parray,TRUE);      }      fclose(fqj);   }           if((fqj=fopen("hzqj2.txt","r"))!=NULL)   {      p.setBrush(QColor(255,233,221));      p.setPen(NoPen);      if(fscanf(fqj,"%d",&qjnum)==1)      {         QPointArray parray(qjnum);         for(a=0;a<qjnum;a++)         {            if(fscanf(fqj,"%ld %ld",&x,&y)==2)            {               qj[a].qjx=(int)(z*500*(x-120081078)/167662+rl);               qj[a].qjy=(int)(z*607*(30374923-y)/203584+ud);               parray.setPoint(a,qj[a].qjx,qj[a].qjy);            }         }         p.drawPolygon(parray,TRUE);      }      fclose(fqj);   }      if((fqj=fopen("hzqj3.txt","r"))!=NULL)   {      p.setBrush(QColor(255,246,222));      p.setPen(NoPen);      if(fscanf(fqj,"%d",&qjnum)==1)      {         QPointArray parray(qjnum);         for(a=0;a<qjnum;a++)         {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -