首页 > 资讯 > > 内容页

世界快消息!Qt文档-Rotations Example笔记

发表于: 2023-05-06 10:37:03 来源:QT教程

使用这种方式,对y轴和z轴进行旋转。

QQuaternion yRotation = QQuaternion::fromAxisAndAngle(0.0f, 1.0f, 0.0f, horizontalAngle * radiansToDegrees);QQuaternion zRotation = QQuaternion::fromAxisAndAngle(0.0f, 0.0f, 1.0f, verticalAngle * radiansToDegrees);QQuaternion totalRotation = yRotation * zRotation;ptrToDataArray->setRotation(totalRotation);

使用这种方式加载obj素材:

m_magneticField->setMesh(QAbstract3DSeries::MeshUserDefined);m_magneticField->setUserDefinedMesh(QStringLiteral(":/mesh/narrowarrow.obj"));

颜色梯度如下代码:


(资料图片)

QLinearGradient fieldGradient(0, 0, 16, 1024);fieldGradient.setColorAt(0.0, Qt::black);fieldGradient.setColorAt(1.0, Qt::white);m_magneticField->setBaseGradient(fieldGradient);m_magneticField->setColorStyle(Q3DTheme::ColorStyleRangeGradient);

箭头的梯度函数0.0是黑色,1.0为白色

代码中的各个各个知识点解析:

Q3DScatter:用于渲染3D离散图的。还可以对内部的item进行旋转。

通过鼠标左右键进行。滚动滚轮进行放大和缩小(变化了场景)。

构造一个简单的Q3DScatter图

首先设置此属性:Qt::FramelessWindowHint

Q3DScatter scatter;scatter.setFlags(scatter.flags() ^ Qt::FramelessWindowHint);

做了上面的工作后Q3DScatter 才能接收数据。使用QVector3D添加一条3D线。

QScatter3DSeries *series = new QScatter3DSeries;QScatterDataArray data;data << QVector3D(0.5f, 0.5f, 0.5f) << QVector3D(-0.3f, -0.5f, -0.4f) << QVector3D(0.0f, -0.3f, 0.2f);series->dataProxy()->addItems(data);scatter.addSeries(series);

最后展示下即可:

scatter.show();

完整的代码:

#include using namespace QtDataVisualization;int main(int argc, char **argv){QGuiApplication app(argc, argv);Q3DScatter scatter;scatter.setFlags(scatter.flags() ^ Qt::FramelessWindowHint);QScatter3DSeries *series = new QScatter3DSeries;QScatterDataArray data;data << QVector3D(0.5f, 0.5f, 0.5f) << QVector3D(-0.3f, -0.5f, -0.4f) << QVector3D(0.0f, -0.3f, 0.2f);series->dataProxy()->addItems(data);scatter.addSeries(series);scatter.show();return app.exec();}

下面这个函数:

QWidget *QWidget::createWindowContainer

在第一个参数的QWindow里面创建一个QWidget

QScatter3DSeries:使用Q3DScatter构建连续的线。

【领 QT开发教程 学习资料, 点击下方链接莬费领取↓↓ ,先码住不迷路~】

点击这里:

标签:

Copyright ©  2015-2022 华东公司网版权所有  备案号:京ICP备2022016840号-41   联系邮箱:2 913 236 @qq.com