#include "DialogTest.h"
#include "ui_DialogTest.h"
DialogTest::DialogTest(QWidget *parent)
: QDialog(parent)
, ui(new Ui::DialogTest)
{
ui->setupUi(this);
setWindowFlags(windowFlags() | Qt::WindowMinMaxButtonsHint);
surface = new Q3DSurface();
QWidget *container = QWidget::createWindowContainer(surface);
ui->gridLayout_2->addWidget(container);
surface->axisY()->setTitle("");
surface->axisY()->setLabelFormat("深度 %.1fm");
surface->axisY()->setTitleVisible(true);
surface->axisX()->setTitle("纬度");
surface->axisX()->setLabelFormat("纬度 %.1f°");
surface->axisX()->setTitleVisible(true);
surface->axisZ()->setTitle("经度");
surface->axisZ()->setLabelFormat("经度 %.1f°");
surface->axisZ()->setTitleVisible(true);
// surface->scene()->activeCamera()->setYRotation(0);
// surface->scene()->activeCamera()->setXRotation(-45);
surface->setShadowQuality(QAbstract3DGraph::ShadowQualityNone);
QSurfaceDataProxy *DataProxy = new QSurfaceDataProxy();
series = new QSurface3DSeries(DataProxy);
series->setColorStyle(Q3DTheme::ColorStyleRangeGradient);
surface->addSeries(series);
DataArray = new QSurfaceDataArray();
// QLinearGradient gr;
// gr.setColorAt(0.0, QColor(247, 41, 0));
// gr.setColorAt(0.25, QColor(212, 168, 0));
// gr.setColorAt(0.50, QColor(12, 235, 13));
// gr.setColorAt(0.75, QColor(0, 134, 212));
// gr.setColorAt(1.0, QColor(174, 15, 245));
// surface->seriesList().at(0)->setBaseGradient(gr);
// surface->seriesList().at(0)->setColorStyle(Q3DTheme::ColorStyleRangeGradient);
// series->setDrawMode(QSurface3DSeries::DrawFlags(2));
}
DialogTest::~DialogTest()
{
delete ui;
}
#include <QtMath>
void DialogTest::on_pushButton_clicked()
{
while (DataArray->empty() == false)
{
QSurfaceDataRow *DataRow = DataArray->first();
DataArray->removeFirst();
delete DataRow;
DataRow = nullptr;
}
int N = 41;
DataArray->reserve(N);
float x=-10,y,z;
int i,j;
for(i = 1;i <= N;i++)
{
QSurfaceDataRow *newRow = new QSurfaceDataRow(N);
y = -10;
int index = 0;
for(j=1;j<=N;j++)
{
z=qSqrt(x*x+y*y);
if(z!=0)
z=10*qSin(z)/z;
else
z=10;
(*newRow)[index++].setPosition(QVector3D(x,z,y));
y=y+0.5;
}
x=x+0.5;
DataArray->append(newRow);
}
series->dataProxy()->resetArray(DataArray);
}
void DialogTest::on_pushButton_2_clicked()
{
surface->scene()->activeCamera()->setCameraPreset((Q3DCamera::CameraPreset)ui->spinBox->value());
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
MyQtTest.7z (5个子文件)
DialogTest.h 587B
DialogTest.cpp 3KB
main.cpp 183B
DialogTest.ui 2KB
MyQtTest.pro 1KB
共 5 条
- 1
资源评论
黄忻
- 粉丝: 28
- 资源: 111
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功