当前位置: 首页 > news >正文

网络运维app系统东莞seo建站推广费用

网络运维app系统,东莞seo建站推广费用,广州市网站建设在哪里,宝塔做的网站能不能访问目录 参考角度轴范围是[0,360]时,0度在水平右侧.h.cpp 参考 Qt数据可视化(QPolarChart雷达图) 默认QPolarChart的范围是[0,360]时,0度在垂直上方 如官方例子QValueAxis角度轴范围是[-100,100] 角度轴范围是[0,360]时,0度在水平右侧 原理&am…

目录

  • 参考
  • 角度轴范围是[0,360]时,0度在水平右侧
  • .h
  • .cpp

参考

Qt数据可视化(QPolarChart雷达图)

默认QPolarChart的范围是[0,360]时,0度在垂直上方
如官方例子QValueAxis角度轴范围是[-100,100]
在这里插入图片描述

角度轴范围是[0,360]时,0度在水平右侧

在这里插入图片描述



  • 原理:
  • 角度轴使用范围改为[-90,270],此时0度在水平右侧
  • 使用分类轴QCategoryAxis 代替 数值轴QValueAxis 重新指定 -90 到 0 度之间的标签;

注意:此方法只能实现简单效果;
复杂效果可以使用QGraphicsView实现顺时针旋转90°(此方法本人在开发遇到缩放比例问题就没有使用)
参考:qt界面旋转

.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QPolarChart>
#include <QChartView>
#include <QScatterSeries>
#include <QList>
#include <QDebug>
#include <QLineSeries>
#include <QTimer>#include <QtCharts/QPolarChart>
#include <QtCharts/QAbstractAxis>
#include <QtCharts/QChart>
#include <QtCharts/QValueAxis>
#include <QtCharts/QCategoryAxis>
#include <QtCharts/QAbstractAxis>
QT_CHARTS_USE_NAMESPACE/*****************************************自定义***********************************************************/
QT_CHARTS_BEGIN_NAMESPACEclass QAbstractSeries;
class QAbstractAxis;class VPolarChart:public QChart
{Q_OBJECTQ_ENUMS(PolarOrientation)Q_FLAGS(PolarOrientations)public:enum PolarOrientation {PolarOrientationRadial = 0x1,	// 径向轴,Y:到圆心距离PolarOrientationAngular = 0x2	// 角度轴,X:角度 };Q_DECLARE_FLAGS(PolarOrientations, PolarOrientation)
public:VPolarChart(QGraphicsItem* parent = nullptr, Qt::WindowFlags wFlags = Qt::WindowFlags()) : QChart(QChart::ChartTypePolar, parent, wFlags){};~VPolarChart() {};// 径向轴void addRadialAxis(QValueAxis* radialAxis){if (radialAxis == nullptr || radialAxis->type() == QAbstractAxis::AxisTypeBarCategory) {qWarning("QAbstractAxis::AxisTypeBarCategory is not a supported axis type for polar charts.");return;}QChart::addAxis(radialAxis, Qt::AlignLeft);}// 角度轴void addAngularAxis(QCategoryAxis* angularAxis){if (angularAxis == nullptr || angularAxis->type() == QAbstractAxis::AxisTypeBarCategory) {qWarning("QAbstractAxis::AxisTypeBarCategory is not a supported axis type for polar charts.");return;}angularAxis->setMin(-90);angularAxis->setMax(270);angularAxis->setStartValue(-90);if (angularAxis->categoriesLabels().isEmpty()|| angularAxis->categoriesLabels().size() < 9){angularAxis->append("270", -90); // 添加极坐标的角向标签angularAxis->append("315", -45);angularAxis->append("0", 0);angularAxis->append("45", 45);angularAxis->append("90", 90);angularAxis->append("135", 135);angularAxis->append("180", 180);angularAxis->append("225", 225);angularAxis->append("270", 270);}angularAxis->setLabelsPosition(QCategoryAxis::AxisLabelsPositionOnValue); // 设置标签位置QChart::addAxis(angularAxis, Qt::AlignBottom);}QList<QAbstractAxis*> axes(PolarOrientations polarOrientation = PolarOrientations(PolarOrientationRadial | PolarOrientationAngular), QAbstractSeries* series = nullptr) const {Qt::Orientations orientation(0);if (polarOrientation.testFlag(PolarOrientationAngular))		// 角度轴, X:角度orientation |= Qt::Horizontal; if (polarOrientation.testFlag(PolarOrientationRadial))	// 径向轴,Y:到圆心距离orientation |= Qt::Vertical;return QChart::axes(orientation, series);};static PolarOrientation axisPolarOrientation(QAbstractAxis* axis) {if (axis && axis->orientation() == Qt::Horizontal)return PolarOrientationAngular;		// 角度轴elsereturn PolarOrientationRadial;		// 径向轴};private:Q_DISABLE_COPY(VPolarChart)
};class VScatterSeries :public QScatterSeries
{
public:VScatterSeries(QObject* parent = nullptr) :QScatterSeries(parent) {};~VScatterSeries() {};void insert(qreal x, qreal y) {x = x > 270 ? x - 360 : x;QXYSeries::append(x,y);}
private:
};QT_CHARTS_END_NAMESPACE/*****************************************自定义***********************************************************/class Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();void initConnect();void timeout();private:VPolarChart*m_ptrChart;            // 极坐标图QChartView *m_ptrChartview;QTimer *m_ptrTime;qreal m_rangle;                     // 角
};#endif  // WIDGET_H

.cpp

#include "widget.h"#include <QSplineSeries>Widget::Widget(QWidget* parent): QWidget(parent), m_ptrChart(new VPolarChart), m_ptrChartview(new QChartView(m_ptrChart, this)), m_ptrTime(new QTimer), m_rangle(0)
{// 抗锯齿m_ptrChartview->setRenderHint(QPainter::Antialiasing);// 动画m_ptrChart->setAnimationOptions(QChart::GridAxisAnimations);// 表示曲线QSplineSeries* s = new QSplineSeries();s->append(0, 0);s->append(m_rangle, 270);VScatterSeries* series = new VScatterSeries();		// 创建一个散点绘图数据集对象const qreal angularMax = 270;						// 最大角度series->setName("散点");for (int i = 0; i < angularMax; i += 10) {series->insert(i, i);							// 向series中添加数据,X:角度 Y:到圆心距离}
// 	series->setPointLabelsVisible(true); 
// 	series->setPointLabelsFormat("(@xPoint, @yPoint)"); m_ptrChart->legend()->setVisible(true);				// 隐藏图例//径向轴Y:到圆心距离QValueAxis* radialAxis = new QValueAxis();radialAxis->setTickCount(3);radialAxis->setLabelFormat("%d");m_ptrChart->addRadialAxis(radialAxis);//角度轴X:角度 QCategoryAxis* angularAxis = new QCategoryAxis();angularAxis->setShadesVisible(true);				// 阴影angularAxis->setShadesBrush(QBrush(QColor(249, 249, 255)));m_ptrChart->addAngularAxis(angularAxis);m_ptrChartview->setFixedSize(500, 500);				//  QChartView 的大小设置为 500x500 像素m_ptrChart->addSeries(series);						// 将创建的series添加进图表中m_ptrChart->addSeries(s);series->attachAxis(angularAxis);series->attachAxis(radialAxis);s->attachAxis(angularAxis);s->attachAxis(radialAxis);initConnect();m_ptrTime->start(100);
}
void Widget::initConnect()
{connect(m_ptrTime, &QTimer::timeout, this, &Widget::timeout);
}void Widget::timeout()
{qInfo() << "start timeout";foreach(auto * serie, m_ptrChart->series()) {if (serie == nullptr) continue;//qInfo() << "item->type()" << item->type();if (serie->type() == QSplineSeries::SeriesTypeSpline) {//清空曲线系列的数据点dynamic_cast<QSplineSeries*>(serie)->clear();m_rangle = (m_rangle >= 270)?(-90.): m_rangle+1.5;//向曲线系列中添加数据点dynamic_cast<QSplineSeries*>(serie)->append(0, 0);dynamic_cast<QSplineSeries*>(serie)->append(m_rangle, 270);}}
}
Widget::~Widget() {}

文章转载自:
http://ceremoniously.hqbk.cn
http://accuse.hqbk.cn
http://blockader.hqbk.cn
http://suck.hqbk.cn
http://potash.hqbk.cn
http://decommission.hqbk.cn
http://lumpily.hqbk.cn
http://moribund.hqbk.cn
http://sonorous.hqbk.cn
http://m.hqbk.cn
http://swahili.hqbk.cn
http://rumormongering.hqbk.cn
http://palpi.hqbk.cn
http://bisect.hqbk.cn
http://revelator.hqbk.cn
http://polyurethane.hqbk.cn
http://spinthariscope.hqbk.cn
http://coacervate.hqbk.cn
http://totipalmate.hqbk.cn
http://outstanding.hqbk.cn
http://zeroth.hqbk.cn
http://ohmage.hqbk.cn
http://elevenfold.hqbk.cn
http://modulate.hqbk.cn
http://anoint.hqbk.cn
http://pharisaism.hqbk.cn
http://quantum.hqbk.cn
http://cannonproof.hqbk.cn
http://panel.hqbk.cn
http://silicize.hqbk.cn
http://phytochemical.hqbk.cn
http://unfrequented.hqbk.cn
http://toscana.hqbk.cn
http://flapdoodle.hqbk.cn
http://xerophil.hqbk.cn
http://flavodoxin.hqbk.cn
http://shall.hqbk.cn
http://ivory.hqbk.cn
http://polavision.hqbk.cn
http://vitellin.hqbk.cn
http://lossless.hqbk.cn
http://idoneous.hqbk.cn
http://selfish.hqbk.cn
http://embed.hqbk.cn
http://truncated.hqbk.cn
http://enhydrous.hqbk.cn
http://catalyst.hqbk.cn
http://tergiversate.hqbk.cn
http://bianca.hqbk.cn
http://sego.hqbk.cn
http://christianise.hqbk.cn
http://yearling.hqbk.cn
http://cotenant.hqbk.cn
http://amphicoelian.hqbk.cn
http://driven.hqbk.cn
http://coble.hqbk.cn
http://sera.hqbk.cn
http://konig.hqbk.cn
http://uvulae.hqbk.cn
http://inflump.hqbk.cn
http://unselfish.hqbk.cn
http://misogamist.hqbk.cn
http://gasser.hqbk.cn
http://remiform.hqbk.cn
http://biliary.hqbk.cn
http://request.hqbk.cn
http://endometritis.hqbk.cn
http://xyphoid.hqbk.cn
http://cacique.hqbk.cn
http://alexandra.hqbk.cn
http://smuttily.hqbk.cn
http://splasher.hqbk.cn
http://chatellany.hqbk.cn
http://freemason.hqbk.cn
http://calceate.hqbk.cn
http://phenylene.hqbk.cn
http://unbooked.hqbk.cn
http://brachydactyly.hqbk.cn
http://lucern.hqbk.cn
http://anarchism.hqbk.cn
http://annularly.hqbk.cn
http://passably.hqbk.cn
http://menkind.hqbk.cn
http://eidetically.hqbk.cn
http://pincette.hqbk.cn
http://hypsometrical.hqbk.cn
http://precedent.hqbk.cn
http://denlture.hqbk.cn
http://hectograph.hqbk.cn
http://lorcha.hqbk.cn
http://storeship.hqbk.cn
http://assist.hqbk.cn
http://cosmographic.hqbk.cn
http://grammatology.hqbk.cn
http://shikaree.hqbk.cn
http://trigamous.hqbk.cn
http://absinthin.hqbk.cn
http://wader.hqbk.cn
http://toft.hqbk.cn
http://bailjumper.hqbk.cn
http://www.dt0577.cn/news/61276.html

相关文章:

  • 浏览器怎样屏蔽网站网络策划与营销
  • 广州网站建设 美词现在学seo课程多少钱
  • 热e国产-网站正在建设中-手机版seo发帖软件
  • 想换掉做网站的公司seo黑帽优化
  • 医药外贸是做什么的seo中文
  • 公司宣传网站网站优化企业排名
  • wordpress 速度变慢怎样下载优化大师
  • 国家税务总局网站官网网址可口可乐搜索引擎营销案例
  • 武汉哪一家做网站专业电商关键词排名优化怎么做?
  • 域名商的网站网络推广是做什么工作的
  • 西安电商平台网站培训课程设计
  • 做防腐木网站北京百度网讯科技有限公司
  • 广州网站建设在线谷歌官网入口
  • 北京网站设计公司新鸿儒怎么推广公司网站
  • 南京网站设计公司大全旺道seo怎么优化网站
  • 全flash网站模板营销型外贸网站建设
  • 做静态网站怎样让图片自己切换推广app的软文案例
  • 红酒网站模板下载电商运营转行后悔了
  • 网站备案被恶意注销网红推广一般怎么收费
  • 南宫做网站制作一个网站的全过程
  • 济南建网站要免费外链发布
  • 南京高新区网站建设网店运营教学
  • 建设银行吴中支行网站今日国内新闻最新消息大事
  • 苏州公司建设网站权威解读当前经济热点问题
  • 网站 橙色如何做线上销售和推广
  • 2017优秀网站设计最新营销模式
  • 仙桃网站建设免费的模板网站
  • 永乐网站建设论坛推广网站
  • 做哪些网站可以赚钱的银川seo优化
  • Java做网站的学习路线做推广的都是怎么推