修复显示问题

pull/7/head
nanjirenwahaha 7 months ago
parent 10e923f370
commit 2a36fdf112

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1,147 @@
/****************************************************************************
** Meta object code from reading C++ file 'datapage.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.3)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include <memory>
#include "src/pages/datapage.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'datapage.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.15.3. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_DataPage_t {
QByteArrayData data[5];
char stringdata0[57];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_DataPage_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_DataPage_t qt_meta_stringdata_DataPage = {
{
QT_MOC_LITERAL(0, 0, 8), // "DataPage"
QT_MOC_LITERAL(1, 9, 13), // "dataRequested"
QT_MOC_LITERAL(2, 23, 0), // ""
QT_MOC_LITERAL(3, 24, 15), // "updateDroneInfo"
QT_MOC_LITERAL(4, 40, 16) // "updateTargetInfo"
},
"DataPage\0dataRequested\0\0updateDroneInfo\0"
"updateTargetInfo"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_DataPage[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
3, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 29, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
3, 0, 30, 2, 0x0a /* Public */,
4, 0, 31, 2, 0x0a /* Public */,
// signals: parameters
QMetaType::Void,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void DataPage::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<DataPage *>(_o);
(void)_t;
switch (_id) {
case 0: _t->dataRequested(); break;
case 1: _t->updateDroneInfo(); break;
case 2: _t->updateTargetInfo(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (DataPage::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&DataPage::dataRequested)) {
*result = 0;
return;
}
}
}
(void)_a;
}
QT_INIT_METAOBJECT const QMetaObject DataPage::staticMetaObject = { {
QMetaObject::SuperData::link<QWidget::staticMetaObject>(),
qt_meta_stringdata_DataPage.data,
qt_meta_data_DataPage,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *DataPage::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *DataPage::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_DataPage.stringdata0))
return static_cast<void*>(this);
return QWidget::qt_metacast(_clname);
}
int DataPage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWidget::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 3)
qt_static_metacall(this, _c, _id, _a);
_id -= 3;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 3)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 3;
}
return _id;
}
// SIGNAL 0
void DataPage::dataRequested()
{
QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

@ -1027,37 +1027,24 @@ void PathPlanningDialog::planPath() {
mapPage_->showMarker(startLng, startLat, "1", "#4CAF50", 0);
mapPage_->showMarker(endLng, endLat, "6", "#FF9800", 1);
// Generate intermediate points for curved path (6 points total including start/end)
// Generate intermediate points using linear interpolation (10 points total: start + 8 intermediates + end)
QList<QPair<double, double>> pathPoints;
pathPoints.append(qMakePair(startLng, startLat));
// Calculate control points for a curved path
// Add 4 intermediate points for better curve representation
double midLng = (startLng + endLng) / 2.0;
double midLat = (startLat + endLat) / 2.0;
// Add some curvature by offsetting the midpoint
double offsetLng = (endLng - startLng) * 0.1; // 10% offset for curvature
double offsetLat = (endLat - startLat) * 0.1;
// Create curved path with 4 intermediate points
for (int i = 1; i < 5; ++i) {
double t = i / 5.0; // Parameter from 0 to 1
// Quadratic Bezier curve for smooth path
double controlLng = midLng + offsetLng * sin(t * M_PI); // Sine wave for smooth curve
double controlLat = midLat + offsetLat * sin(t * M_PI);
double pointLng = startLng * (1 - t) * (1 - t) + 2 * controlLng * t * (1 - t) + endLng * t * t;
double pointLat = startLat * (1 - t) * (1 - t) + 2 * controlLat * t * (1 - t) + endLat * t * t;
double dx = endLng - startLng;
double dy = endLat - startLat;
for (int i = 1; i < 9; ++i) {
double t = static_cast<double>(i) / 9.0;
double pointLng = startLng + t * dx;
double pointLat = startLat + t * dy;
pathPoints.append(qMakePair(pointLng, pointLat));
}
pathPoints.append(qMakePair(endLng, endLat));
// Clear and update table to avoid duplicates
// Clear and update table, reset headers to ensure they persist
pathTable_->clear();
pathTable_->setHorizontalHeaderLabels({"经度", "纬度"});
pathTable_->setRowCount(pathPoints.size());
for (int i = 0; i < pathPoints.size(); ++i) {
pathTable_->setItem(i, 0, new QTableWidgetItem(QString::number(pathPoints[i].first, 'f', 6)));
@ -1080,7 +1067,7 @@ void PathPlanningDialog::planPath() {
mapPage_->visualizePath(pathData_);
}
QMessageBox::information(this, "成功", "路径规划完成,包含4个中间点实现曲线效果");
QMessageBox::information(this, "成功", "路径规划完成,包含8个中间点实现平滑路径");
}
QString PathPlanningDialog::getPathData() const {

Loading…
Cancel
Save