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

动漫做暧视频网站改图网网站谁做的

动漫做暧视频网站,改图网网站谁做的,佛山专业的免费网站优化,品牌建设总结报告1、概述 源码放在文章末尾 该项目实现了带动画、带交互的折线图#xff0c;包含如下特点#xff1a; 动态增删数值 自适应显示坐标轴数值 鼠标悬浮显示十字对准线 鼠标靠近点自动贴附 支持直线与平滑曲线效果 自定义点的显示类型与大小 自适应点的数值显示位置 根据指定锚点…1、概述 源码放在文章末尾 该项目实现了带动画、带交互的折线图包含如下特点 动态增删数值 自适应显示坐标轴数值 鼠标悬浮显示十字对准线 鼠标靠近点自动贴附 支持直线与平滑曲线效果 自定义点的显示类型与大小 自适应点的数值显示位置 根据指定锚点缩放 平滑的横向移动 选中的纵向渐变效果 项目demo演示如下所示 项目部分代码如下所示 #ifndef LINECHART_H #define LINECHART_H#include QObject #include QWidget #include QList #include QPainter #include QPainterPath #include QPropertyAnimation #include QtMathstruct ChartData {QString title;QColor color Qt::black;int xMin 0;int xMax 0;int yMin 0;int yMax 0;QListQPoint points;QListQString xLabels; // X显示的名字可空比如日期 };struct Vector2D : public QPointF {Vector2D(double x, double y) : QPointF(x, y){}Vector2D(QPointF p) : QPointF(p){}/// 向量长度double length(){return sqrt(x() * x() y() * y());}/// 转单位向量Vector2D normalize(){double len length();double inv;if (len 1e-4)inv 0;elseinv 1 / length();return Vector2D(x() * inv, y() * inv);}/// 向量相加Vector2D operator (Vector2D v){return Vector2D(x() v.x(), y() v.y());}/// 向量翻倍Vector2D operator* (double f){return Vector2D(x() * f, y() * f);}/// 内积double dot(Vector2D v){return x() * v.x() y() * v.y();}/// 两个向量夹角double angle(Vector2D v){return acos(dot(v) / (length() * v.length())) * 180 / M_PI;} };class LineChart : public QWidget {Q_OBJECTQ_PROPERTY(int display_x_min READ getDisplayXMin WRITE setDisplayXMin)Q_PROPERTY(int display_x_max READ getDisplayXMax WRITE setDisplayXMax)Q_PROPERTY(int display_y_min READ getDisplayYMin WRITE setDisplayYMin)Q_PROPERTY(int display_y_max READ getDisplayYMax WRITE setDisplayYMax)public:LineChart(QWidget *parent nullptr);int lineCount() const;void setPointLineType(int t);void setPointValueType(int t);void setPointDotType(int t);void setPointDotRadius(int r);void setLabelSpacing(int s);void addLine(ChartData data);void removeLine(int index);void addPoint(int index, int x, int y);void addPoint(int index, int x, int y, const QString label);void removeFirst(int index);void updateAnchors();void zoom(double prop);void moveHorizontal(int x);signals:void signalSelectRangeChanged(int start, int end);public slots:void zoomIn();void zoomOut();protected:void paintEvent(QPaintEvent *event) override;void enterEvent(QEvent *event) override;void leaveEvent(QEvent *event) override;void mouseMoveEvent(QMouseEvent *event) override;void mousePressEvent(QMouseEvent *event) override;void mouseReleaseEvent(QMouseEvent *event) override;void wheelEvent(QWheelEvent *event) override;private:void setDisplayXMin(int v);int getDisplayXMin() const;void setDisplayXMax(int v);int getDisplayXMax() const;void setDisplayYMin(int v);int getDisplayYMin() const;void setDisplayYMax(int v);int getDisplayYMax() const;void saveRange();void startRangeAnimation();QPropertyAnimation* startAnimation(const QByteArray property, int start, int end, bool* flag, int duration 300, QEasingCurve curve QEasingCurve::OutQuad);int getValueByCursorPos(QPoint pos);private:// 数据QListChartData datas; // 所有折线的数据// 界面QRect contentRect; // 显示的范围实时刷新QRect paddings QRect(32, 32, 32, 32); // 四周留白(widthright,heightbottom)QColor borderColor Qt::gray; // 边界线颜色int labelSpacing 2; // 标签间距// 信息显示bool autoResize true; // 自动调整大小int displayXMin 0, displayXMax 0; // 显示的X轴范围int displayYMin 0, displayYMax 0; // 显示的Y轴范围bool usePointXLabels true; // 优先使用点对应的label还是相同间距的数值QListQString xLabels; // 显示的文字可能少于值数量QListint xLabelPoss;int pointLineType 3; // 连线类型1直线2二次贝塞尔曲线3三次贝塞尔曲线更精确但吃性能int pointValueType 2; // 数值显示位置0无1强制上方2自动附近int pointDotType 1; // 圆点类型0无1空心圆2实心圆3小方块int pointDotRadius 2; // 圆点半径// 动画效果bool enableAnimation true;int _savedXMin, _savedXMax; // 修改前的数值int _savedYMin, _savedYMax;bool animatingXMin false, animatingXMax false; // 是否正在动画中bool animatingYMin false, animatingYMax false;int _animatedXMin, _animatedXMax; // 动画中的数值仅影响显示int _animatedYMin, _animatedYMax;// 交互数据bool pressing false;QPoint pressPos, releasePos;bool hovering false;QPoint hoverPos;int nearDis 8; // 四周这些距离内算是“附近”// 悬浮提示bool showCrossOnPressing true; // 按下显示十字对准线QColor hightlightColor QColor(#FF7300); // 高亮颜色// 鼠标选择bool enableSelect true;bool selecting false;int selectPos 0; // 最后一次鼠标点击的X像素相对显示矩形int selectXStart 0, selectXEnd 0; // 鼠标按下/松开的对应X值位置QColor selectColor QColor(#F08080); // 选择区域颜色// 缩放(仅针对X轴)bool enableScale true;int displayXStart 0, displayXEnd 0; };#endif // LINECHART_H源码下载
http://www.dnsts.com.cn/news/147846.html

相关文章:

  • 主题公园旅游景区网站建设廊坊seo网络推广
  • 深圳 网站建设 公司谁能低价做网站支付接口
  • 网站建设捌金手指花总十八专业seo要多少钱
  • 郑州市建设工程信息网站沈阳企业网站
  • 中英文双语网站建设濮阳做网站建设的公司
  • 有哪些好的网站项目wordpress微信小程序部署
  • 网站导航栏下载网站开发环境配置难
  • 资源网站快速优化排名WordPress做分类信息
  • 电商网站建设需求人像摄影作品网站
  • 企业网站全屏轮播怎么做手机怎么建自己的网站
  • 美工做的好的网站ui设计的基本流程
  • 让做网站策划没经验怎么办wordpress全能播放器代码
  • 网站开发费计入什么科目宿迁住房和城乡建设部网站
  • 上海跨境电商网站开发公司排名网站建设 质量标准
  • 福田的网站建设公司开发小程序流程
  • 家具网站建设策划方案网站 可以做无形资产吗
  • 泸县手机网站建设网站设计需求表
  • 网站开发人员趋势网站开发的研究背景
  • 大连网站建设lccmwordpress 4.7.3 id
  • 贵州手机网站建设全球域名查询
  • 如何免费创建自己的网站平台思源黑体 wordpress
  • 如何将数据库导入网站wordpress微信机器人高级版 免费
  • 网页开发和网站开发做网站的创始人
  • 火锅料网站方案怎么做知名自助建站平台
  • 网站建设培训学费网站关键字描述
  • 连云港建网站小网站文案
  • 丹徒网站建设建e室内设计网官网平面图
  • 网站压缩网站程序更换
  • 网站添加flv视频代码北京青鸟培训机构哪家是正规的
  • 优仔电话手表网站经典wordpress网站