#include "mainwindow.h"
#include "graph.h"
#include "ui_mainwindow.h"
#include <QPainter>
#include <QMessageBox>
#define WIN_WIGHT 1500
#define WIN_HEIGHT 800
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
setFixedSize(WIN_WIGHT,WIN_HEIGHT);
pix=QPixmap(WIN_WIGHT,WIN_HEIGHT);
pix.fill(Qt::white);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::drawline(int x1,int y1,int x2,int y2, QColor const c)
{
QPainter painter(&pix);
painter.setPen(QPen(c));
QLineF line(x1,y1,x2,y2);
painter.drawLine(line);
update();
}
void MainWindow::paintEvent(QPaintEvent* event)
{
QPainter painter(this);
painter.drawPixmap(0,0,WIN_WIGHT,WIN_HEIGHT,pix);
}
void MainWindow::on_recommendpath_clicked()
{ Graph graph;
graph.Init();
Graph::Vex vexs[SIZE];
Graph::Edge edges[SIZE*SIZE];
memset(vexs,0,sizeof (vexs));
memset(edges,0,sizeof (edges));
graph.createScenicSpot(vexs,edges);
for(int i = 0;i < 7;i++)
graph.InsertVex(vexs[i]);
for(int i = 0;i < 11;i++)
graph.InsertEdge(edges[i]);
Graph::Edge temp[11];
graph.MST(temp);//最小生成树,推荐游览路径
pix.fill(Qt::white);
int B1X,B1Y,B2X,B2Y;
QPoint p1,p2;
for(int i = 0;i < 11;i++){
switch (temp[i].vex1) {
case 0:
p1=ui->spot1_3->mapToGlobal(QPoint(0,0));
B1X=p1.x(),B1Y=p1.y();
switch(temp[i].vex2){
case 0:
p2=ui->spot1_3->mapToGlobal(QPoint(0,0));
break;
case 1:
p2=ui->spot2_3->mapToGlobal(QPoint(0,0));
break;
case 2:
p2=ui->spot3_3->mapToGlobal(QPoint(0,0));
break;
case 3:
p2=ui->spot4_3->mapToGlobal(QPoint(0,0));
break;
case 4:
p2=ui->spot5_3->mapToGlobal(QPoint(0,0));
break;
case 5:
p2=ui->spot6_3->mapToGlobal(QPoint(0,0));
break;
case 6:
p2=ui->spot7_3->mapToGlobal(QPoint(0,0));
break;
}
B2X=p2.x(),B2Y=p2.y();
drawline(B1X,B1Y,B2X,B2Y,QColor(255,0,0));
break;
case 1:
p1=ui->spot2_3->mapToGlobal(QPoint(0,0));
B1X=p1.x(),B1Y=p1.y();
switch(temp[i].vex2){
case 0:
p2=ui->spot1_3->mapToGlobal(QPoint(0,0));
break;
case 1:
p2=ui->spot2_3->mapToGlobal(QPoint(0,0));
break;
case 2:
p2=ui->spot3_3->mapToGlobal(QPoint(0,0));
//printf("x1:%d y1:%d x2:%d y2:%d \n",B1X,B1Y,B2X,B2Y);
break;
case 3:
p2=ui->spot4_3->mapToGlobal(QPoint(0,0));
break;
case 4:
p2=ui->spot5_3->mapToGlobal(QPoint(0,0));
break;
case 5:
p2=ui->spot6_3->mapToGlobal(QPoint(0,0));
break;
case 6:
p2=ui->spot7_3->mapToGlobal(QPoint(0,0));
break;
}
B2X=p2.x(),B2Y=p2.y();
drawline(B1X,B1Y,B2X,B2Y,QColor(255,0,0));
break;
case 2:
p1=ui->spot3_3->mapToGlobal(QPoint(0,0));
B1X=p1.x(),B1Y=p1.y();
switch(temp[i].vex2){
case 0:
p2=ui->spot1_3->mapToGlobal(QPoint(0,0));
break;
case 1:
p2=ui->spot2_3->mapToGlobal(QPoint(0,0));
break;
case 2:
p2=ui->spot3_3->mapToGlobal(QPoint(0,0));
break;
case 3:
p2=ui->spot4_3->mapToGlobal(QPoint(0,0));
break;
case 4:
p2=ui->spot5_3->mapToGlobal(QPoint(0,0));
break;
case 5:
p2=ui->spot6_3->mapToGlobal(QPoint(0,0));
break;
case 6:
p2=ui->spot7_3->mapToGlobal(QPoint(0,0));
break;
}
B2X=p2.x(),B2Y=p2.y();
drawline(B1X,B1Y,B2X,B2Y,QColor(255,0,0));
break;
case 3:
p1=ui->spot4_3->mapToGlobal(QPoint(0,0));
B1X=p1.x(),B1Y=p1.y();
switch(temp[i].vex2){
case 0:
p2=ui->spot1_3->mapToGlobal(QPoint(0,0));
break;
case 1:
p2=ui->spot2_3->mapToGlobal(QPoint(0,0));
break;
case 2:
p2=ui->spot3_3->mapToGlobal(QPoint(0,0));
break;
case 3:
p2=ui->spot4_3->mapToGlobal(QPoint(0,0));
break;
case 4:
p2=ui->spot5_3->mapToGlobal(QPoint(0,0));
break;
case 5:
p2=ui->spot6_3->mapToGlobal(QPoint(0,0));
break;
case 6:
p2=ui->spot7_3->mapToGlobal(QPoint(0,0));
break;
}
B2X=p2.x(),B2Y=p2.y();
drawline(B1X,B1Y,B2X,B2Y,QColor(255,0,0));
break;
case 4:
p1=ui->spot5_3->mapToGlobal(QPoint(0,0));
B1X=p1.x(),B1Y=p1.y();
switch(temp[i].vex2){
case 0:
p2=ui->spot1_3->mapToGlobal(QPoint(0,0));
break;
case 1:
p2=ui->spot2_3->mapToGlobal(QPoint(0,0));
break;
case 2:
p2=ui->spot3_3->mapToGlobal(QPoint(0,0));
break;
case 3:
p2=ui->spot4_3->mapToGlobal(QPoint(0,0));
break;
case 4:
p2=ui->spot5_3->mapToGlobal(QPoint(0,0));
break;
case 5:
p2=ui->spot6_3->mapToGlobal(QPoint(0,0));
break;
case 6:
p2=ui->spot7_3->mapToGlobal(QPoint(0,0));
break;
}
B2X=p2.x(),B2Y=p2.y();
drawline(B1X,B1Y,B2X,B2Y,QColor(255,0,0));
break;
case 5:
p1=ui->spot6_3->mapToGlobal(QPoint(0,0));
B1X=p1.x(),B1Y=p1.y();
switch(temp[i].vex2){
case 0:
p2=ui->spot1_3->mapToGlobal(QPoint(0,0));
break;
case 1:
p2=ui->spot2_3->mapToGlobal(QPoint(0,0));
break;
case 2:
p2=ui->spot3_3->mapToGlobal(QPoint(0,0));
break;
case 3:
p2=ui->spot4_3->mapToGlobal(QPoint(0,0));
break;
case 4:
p2=ui->spot5_3->mapToGlobal(QPoint(0,0));
break;
case 5:
p2=ui->spot6_3->mapToGlobal(QPoint(0,0));
break;
case 6:
p2=ui->spot7_3->mapToGlobal(QPoint(0,0));
break;
}
B2X=p2.x(),B2Y=p2.y();
drawline(B1X,B1Y,B2X,B2Y,QColor(255,0,0));
break;
case 6:
p1=ui->spot7_3->mapToGlobal(QPoint(0,0));
B1X=p1.x(),B1Y=p1.y();
switch(temp[i].vex2){
case 0:
p2=ui->spot1_3->mapToGlobal(QPoint(0,0));
break;
case 1:
p2=ui->spot2_3->mapToGlobal(QPoint(0,0));
break;
case 2:
p2=ui->spot3_3->mapToGlobal(QPoint(0,0));
break;
case 3:
p2=

onnx
- 粉丝: 1w+
- 资源: 5632
最新资源
- Ollama安装包Mac版
- 【人工智能比赛获奖源码】+【PyQt5混元大模型】+【桌面聊天应用】+【效率辅助工具】
- 三相VIENNA整流器Simulink仿真详解:输入电压与输出电压规格化设定,高效率与精准控制特性的系统分析展示,三相VIENNA整流技术详解:Simulink仿真分析与电路设计特点 输入220V
- 是德Keysight Infiniium MXR/EXR-Series Oscilloscopes使用说明书下载
- 按年龄和国家划分的全球平均人体身高.zip
- 《基于多时段动态电价策略优化电动汽车有序充电,实现电网负荷平衡与用户充电成本节约》,《基于多时段动态电价策略与粒子群算法的电动汽车有序充电优化》,《基于多时段动态电价的电动汽车有序充电策略优化》 平台
- LabVIEW与YOLOv5融合:多模型并行推理的ONNX Runtime封装DLL,支持视频、图片双模式CPU/GPU切换式识别,实现灵活选择高性价比推演模式,可迅速标注及高效训练,LabVIEW与
- Chatbox MAC安装包
- 质心侧偏角与横摆角速度相平面法在车辆动力学控制中的协调应用与程序实现,车辆动力学控制的质心侧偏角与横摆角速度相平面法研究及程序实现,相平面法,车辆动力学控制,协调控制使用,质心侧偏角-横摆角速度相平面
- IIS假死监视工具,发现假死就重启iis和释放程序池
- FPGA采集CameraLink相机Full模式解码输出方案:从输入到HDMI高清视频输出的实现流程,FPGA采集CameraLink相机Full模式解码输出实现方案:从相机输入到HDMI视频输出精细
- c++-继承与派生-例题源代码
- 【毕业设计参考】AVR寻迹小车.rar
- springcloud
- 波特兰建筑许可数据.zip
- Vuforia package-10-28-4
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


