qwt直角坐标 画sing(x)/x

news2024/10/6 18:31:15

cmath的常见函数:qPow()求平方,log()对数10为底
角度转弧度:x=(angel/180)*M_PI
图示:在这里插入图片描述
头文件:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <qwt_plot.h>
#include <qwt_polar_curve.h>
#include <qwt_polar_grid.h>
#include <qwt_polar_marker.h>
#include <qwt_polar_canvas.h>
#include <qwt_polar_renderer.h>

#include <QVector>
#include <QMap>
#include<cmath>
#include<QtMath>
#include <QDebug>


QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

主函数:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <qwt_plot_curve.h>
#include <qwt_plot_grid.h>
#include <qwt_legend.h>
#include <qwt_legend_label.h>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    /*清屏重绘*/
    ui->qwtPlot->detachItems();
    ui->qwtPlot->replot();
    /*setAxisScale四个参数的含义分别是:坐标轴->坐标轴最小值->坐标轴最大值->步进*/
    ui->qwtPlot->setAxisScale(QwtPlot::xBottom,-90,90,15);
    ui->qwtPlot->setAxisScale(QwtPlot::yLeft,0,60,1);
    ui->qwtPlot->setAxisTitle(QwtPlot::xBottom,"x(data)");
    ui->qwtPlot->setAxisTitle(QwtPlot::yLeft,"y(data)");
    QwtPlotCurve* curve = new QwtPlotCurve("Curve 1");   //设置曲线

    //以下是公式
#if 1
    QVector<QPointF>po;
    float y;
    float x;
    float u;
    for(float angel=-90;angel<=90;angel++)
    {
         x=(angel/180)*M_PI;
        if(angel!=0)
        {
            u=571*sin(x);//这里的u自变量会影响函数的周期
            y=sin(u)/u;
            y=y*900; //把y扩大900倍
            y=abs(y);
             po<<QPointF(angel,y);
        }
    }
#endif
    curve->setSamples(po);
    curve->setPen(QColor(160, 36,48),2,Qt::SolidLine);    //设置画笔(颜色,粗细,线条样式)
    curve->attach(ui->qwtPlot);   //把曲线附加到qwtPlot上
    curve->setCurveAttribute(QwtPlotCurve::Fitted, true);   //曲线光滑

    /*ui界面显示曲线*/
    ui->qwtPlot->replot();
    ui->qwtPlot->setAutoReplot(true);   //自动更新

}

MainWindow::~MainWindow()
{
    delete ui;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1412058.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学术论文写作 笔记03】消融实验(ablation study)写作的行文逻辑

文章目录 一、声明二、行文逻辑三、示例示例一示例二 四、常用短语&#xff08;未完&#xff09; 一、声明 自己总结的&#xff0c;有问题望指正&#xff01; 二、行文逻辑 总述&#xff1a;在什么数据集上测试了关于什么参数或模块的消融实验实验是怎么做的实验结论是什么 …

Java工程师的你,真的不想了解一下《类加载器详解》吗?(重点)

Java工程师的你&#xff0c;真的不想了解一下《类加载器详解》(重点)吗&#xff1f; 文章目录 Java工程师的你&#xff0c;真的不想了解一下《类加载器详解》(重点)吗&#xff1f;回顾一下类加载过程类加载器类加载器介绍类加载器加载规则类加载器总结自定义类加载器 双亲委派模…

ElasticSearch搜索引擎入门到精通

ES 是基于 Lucene 的全文检索引擎,它会对数据进行分词后保存索引,擅长管理大量的数据,相对于 MySQL 来说不擅长经常更新数据及关联查询。这篇文章就是为了进一步了解一下它,到底是如何做到这么高效的查询的。 在学习其他数据库的时候我们知道索引是一个数据库系统极其重要…

机器学习实验1——朴素贝叶斯和逻辑回归分类Adult数据集

文章目录 &#x1f9e1;&#x1f9e1;实验内容&#x1f9e1;&#x1f9e1;&#x1f9e1;&#x1f9e1;数据预处理&#x1f9e1;&#x1f9e1;认识数据填充缺失值&#xff08;“ &#xff1f;”&#xff09;将income属性替换为0-1变量筛除无效属性编码和缩放 &#x1f9e1;&…

【SpringBoot篇】springboot的自动装配原理

文章目录 &#x1f3f3;️‍&#x1f308;什么是自动装配&#x1f339;SpringBoot的自动装配&#x1f354;具体操作 &#x1f3f3;️‍&#x1f308;什么是自动装配 自动装配&#xff08;Auto-Configuration&#xff09;是Spring Boot框架的一个核心特性之一&#xff0c;它通过…

Windows10手动取消更新

因为我的设备是比较老了&#xff0c;担心升级Windows11后硬件跟不上&#xff0c;所以不想更新Windows11&#xff0c;但系统一遍又一遍的提醒更新&#xff0c;这时候就可以手动停止更新了 1、Win R&#xff0c;在对话框然后输入命令 services.msc 2、点击确定进入服务管理&…

MNIST手写数据集项目

import torch import torch.nn as nn import torch.nn.functional as F import torchvision from torchvision import transforms from PIL import Image import matplotlib.pyplot as plt import numpy as np一、数据处理部分 ①定义数据转换 ②加载训练和测试数据&#xff…

Ansible自动化运维(三)Playbook 模式详解

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

输入框内容和占位符过长悬浮提示

1. 输入框内容过长&#xff0c;内容悬浮提示 <el-tooltip :disabled"isShowTooltip" effect"dark" :content"formData.toChineseCode" placement"top"><el-inputv-model"formData.toChineseCode"mouseover.native&…

【开源项目】超经典开源项目实景三维数字孪生海洋牧场、海上平台

飞渡科技数字孪生海上运营平台&#xff0c;基于数字孪生、物联网IOT、远程控制与遥感等技术&#xff0c;结合前端智能感知设备数据和专业模型算法&#xff0c;对海洋养殖环境、船只、网箱、监测设备等各要素态势进行综合监测分析&#xff0c;对各类异常事件进行可视化预警、告警…

微信开放平台第三方授权(第一篇)

1.项目需要的功能 需求不可以用微信原有的开发接管方式&#xff0c;之后发现可以进行第三方授权。先登录微信开放平台&#xff0c;找到第三方平台。 微信开放平台 配置第三方平台 基本概念介绍 | 微信开放文档 进入到管理配置 以上连接配置参考 接收授权事件&#xff1a;h…

深度解析Java8社招面试题:Lambda序列化到底行不行?

大家好&#xff0c;我是小米&#xff0c;一个热爱技术分享的小伙伴。今天&#xff0c;我们来聊一个关于Java8的话题&#xff0c;一个颇具技术深度的问题&#xff1a;“社招面试题&#xff1a;Java8中的Lambda表达式可以序列化吗&#xff1f;”废话不多说&#xff0c;让我们一起…

stm32中的SPI

SPI的简介 文章目录 SPI的简介物理层协议层基本通讯过程起始和终止信号数据有效性CPOL/CPHA及通讯模式 STM3的SPI特性及架构通讯引脚时钟控制逻辑数据控制逻辑整体控制逻辑通讯过程 代码配置实现指令集结构体的定义SPI时钟信号的定义SPI端口定义SPI命令 flash驱动代码初始化代码…

【Python】paddleocr快速使用及参数详解

文章目录 1. paddleocr快速使用1.1 使用默认模型路径1.2 设定模型路径 2. PaddleOCR其他参数介绍PaddleOCR模型推理参数解释 其它相关推荐&#xff1a; PaddleOCR模型训练及使用详细教程 官方网址&#xff1a;https://github.com/PaddlePaddle/PaddleOCR PaddleOCR是基于Paddle…

【软考问题】-- 3 - 知识精讲 - 项目整合管理

一、基本问题 1&#xff1a;项目章程的内容包括什么&#xff1f;&#xff08;助记&#xff1a;疯木鱼-要进庙里-发神经&#xff09; 疯&#xff1a;项目整体风险木&#xff1a;项目目标鱼&#xff1a;整体预算要&#xff1a;概要设计进&#xff1a;总体里程碑进度庙&#xff1a…

深度学习(4)--Keras安装

目录 Keras安装: 1.1.安装CUDA/cuDDN工具包 1.1.1.安装前准备 1.1.2.安装CUDA 1.1.3.安装cuDDN 1.2.安装Anaconda 1.3.安装tensorflow框架 1.3.1.使用cmd安装 1.3.2.使用Anaconda Prompt安装 1.4.安装Keras框架 1.5.打开jupyter notebook&#xff0c;执行import调用…

Linux/Academy

Enumeration nmap 首先扫描目标端口对外开放情况 nmap -p- 10.10.10.215 -T4 发现对外开放了22,80,33060三个端口&#xff0c;端口详细信息如下 结果显示80端口运行着http&#xff0c;且给出了域名academy.htb&#xff0c;现将ip与域名写到/et/hosts中&#xff0c;然后从ht…

Redis数据结构与底层实现揭秘

在高并发的系统开发中&#xff0c;缓存和高效的数据存储机制对于提升应用性能至关重要。Redis&#xff0c;作为其中的佼佼者&#xff0c;以其卓越的性能和丰富的数据结构赢得了开发者的青睐。本文将深入探讨Redis的数据结构及其底层实现&#xff0c;带领读者走进这个高性能数据…

【云原生】Docker的镜像创建

目录 1&#xff0e;基于现有镜像创建 &#xff08;1&#xff09;首先启动一个镜像&#xff0c;在容器里做修改 ​编辑&#xff08;2&#xff09;然后将修改后的容器提交为新的镜像&#xff0c;需要使用该容器的 ID 号创建新镜像 实验 2&#xff0e;基于本地模板创建 3&am…

【网站项目】基于SSM的249作业提交与查收系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…