Qt21基础图形的绘制

news2024/11/15 20:10:05

基础图形的绘制

  • paintarea
    • paintarea.h
    • paintarea.cpp
  • paintex
    • paintex.h
    • paintex.cpp
  • main.cpp
  • 运行图

paintarea

paintarea.h

#ifndef PAINTAREA_H
#define PAINTAREA_H

#include <QWidget>
#include <QBrush>
#include <QPen>
#include <QPainter>
#include <QPainterPath>

class PaintArea : public QWidget
{
    Q_OBJECT
public:
    enum Shape{Line,Rectangle,RoundRect,Ellipse,Polygon,PolyLine,Points,Arc,Path,Text,Pixmap};

    explicit PaintArea(QWidget *parent = nullptr);
    void SetShape(Shape);
    void SetPen(QPen);
    void SetBrush(QBrush);
    void SetFillRule(Qt::FillRule);
    void paintEvent(QPaintEvent*);

signals:

private:
    Shape shape;
    QPen pen;
    QBrush brush;
    Qt::FillRule FillRule;

};

#endif // PAINTAREA_H

paintarea.cpp

#include "paintarea.h"


PaintArea::PaintArea(QWidget *parent)
    : QWidget{parent}
{
    setPalette(QPalette(Qt::white));
    setAutoFillBackground(true);
    setMinimumSize(400,400);
}

void PaintArea::SetShape(Shape s)
{
    shape =s;
    update();
}

void PaintArea::SetPen(QPen p)
{
    pen  = p;
    update();
}

void PaintArea::SetBrush(QBrush b)
{
    brush = b;
    update();
}

void PaintArea::SetFillRule(Qt::FillRule Rule)
{
    FillRule = Rule;
    update();
}

void PaintArea::paintEvent(QPaintEvent *)
{
    QPainter p(this);//创建一个画板
    p.setPen(pen);//设置画笔
    p.setBrush(brush);//设置画刷

    QRect Rect(50,100,300,200);
    static const QPoint points[4] =
    {
        QPoint(150,100),
        QPoint(300,150),
        QPoint(350,250),
        QPoint(100,300)
    };
    int StartAngle = 30*16;
    int SpanAngle = 120*16;
    QPainterPath path;
    path.addRect(150,150,100,100);
    path.moveTo(100,100);
    path.cubicTo(300,100,200,200,300,300);
    path.cubicTo(100,300,200,200,100,100);
    path.setFillRule(FillRule);
    switch(shape)
    {
        case Line://直线
        {
            p.drawLine(Rect.topLeft(),Rect.bottomRight());
            break;
        }
        case Rectangle://长方形
        {
            p.drawRect(Rect);
            break;
        }
        case RoundRect://圆角方形
        {
            p.drawRoundedRect(Rect,20,20);
            break;
        }
        case Ellipse://椭圆形
        {
            p.drawEllipse(Rect);
            break;
        }
        case Polygon://多边形
        {
            p.drawPolygon(Rect);
            break;
        }
        case Points://点
        {
            p.drawPoints(points,4);
            break;
        }
        case Arc://弧
        {
            p.drawArc(Rect,StartAngle,SpanAngle);
            break;
        }
        case Path://路径
        {
            p.drawPath(path);
            break;
        }
        case Text://文字
        {
            p.drawText(Rect,Qt::AlignCenter,tr("第一"));
            break;
        }
        case Pixmap://文字
        {
            p.drawPixmap(150,150,QPixmap("312.ico"));
            break;
        }
        default:break;
    }

}

paintex

paintex.h

#ifndef PAINTEX_H
#define PAINTEX_H

#include <QWidget>
#include "paintarea.h"
#include <QLabel>
#include <QComboBox>
#include <QSpinBox>
#include <QPushButton>
#include <QGridLayout>
#include <QGradient>

class PaintEx : public QWidget
{
    Q_OBJECT

public:
    PaintEx(QWidget *parent = nullptr);
    ~PaintEx();
private:
    PaintArea* paintArea;
    QLabel* ShapeLabel;
    QComboBox* shapeComboBox;
    QLabel* PenWidthLabel;
    QSpinBox* PenWidthSpinBox;
    QLabel* PenColorLabel;
    QFrame* PenColorFrame;
    QPushButton* PenColorBtn;
    QLabel* PenStyleLabel;
    QComboBox* PenStyleComboBox;
    QLabel* PenCapLabel;
    QComboBox* PenCapComboBox;
    QLabel* PenJoinLabel;
    QComboBox* PenJoinComboBox;
    QLabel* FillRuleLabel;
    QComboBox* FillRuleComboBox;
    QLabel* SpreadLabel;
    QComboBox* SpreadComboBox;
    QGradient::Spread spread;
    QLabel* BrushStyleLabel;
    QComboBox *BrushStyleComboBox;
    QLabel* BrushColorLabel;
    QFrame* BrushColorFrame;
    QPushButton* BrushColorBtn;
    QGridLayout* RightLayout;
protected slots:
    void ShowShape(int);
    void ShowPenWidth(int);
    void ShowPenColor();
    void ShowPenStyle(int);
    void ShowPenCap(int);
    void ShowPenJoin(int);
    void ShowSpreadStyle();
    void ShowFillRule();
    void ShowBrushColor();
    void ShowBrush(int);


};
#endif // PAINTEX_H

paintex.cpp

#include "paintex.h"
#include <QColorDialog>

PaintEx::PaintEx(QWidget *parent)
    : QWidget(parent)
{
    paintArea = new PaintArea;
    ShapeLabel = new QLabel(tr("形状:"));
    shapeComboBox =new QComboBox;
    shapeComboBox->addItem(tr("Line"),PaintArea::Line);
    shapeComboBox->addItem(tr("Rectangle"),PaintArea::Rectangle);
    shapeComboBox->addItem(tr("RoundedRect"),PaintArea::RoundRect);
    shapeComboBox->addItem(tr("Ellipse"),PaintArea::Ellipse);
    shapeComboBox->addItem(tr("Polygon"),PaintArea::Polygon);
    shapeComboBox->addItem(tr("PolyLine"),PaintArea::PolyLine);
    shapeComboBox->addItem(tr("Points"),PaintArea::Points);
    shapeComboBox->addItem(tr("Arc"),PaintArea::Arc);
    shapeComboBox->addItem(tr("Path"),PaintArea::Path);
    shapeComboBox->addItem(tr("Text"),PaintArea::Text);
    shapeComboBox->addItem(tr("Pixmap"),PaintArea::Pixmap);
    connect(shapeComboBox, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated),
            this, &PaintEx::ShowShape);
    PenColorLabel = new QLabel("画笔颜色:");
    PenColorFrame = new QFrame;
    PenColorFrame->setAutoFillBackground(true);
    PenColorFrame->setFrameStyle(QFrame::Panel|QFrame::Sunken);
    PenColorFrame->setPalette(QPalette(Qt::blue));
    PenColorBtn = new QPushButton(tr("更改"));
    connect(PenColorBtn,&QPushButton::clicked,this,&PaintEx::ShowPenColor);

    PenWidthLabel = new QLabel(tr("画笔线宽|:"));
    PenWidthSpinBox = new QSpinBox;
    PenWidthSpinBox->setRange(0,20);
    connect(PenWidthSpinBox,static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),this,&PaintEx::ShowPenWidth);

    PenStyleLabel  = new QLabel(tr("画笔风格:"));
    PenStyleComboBox = new QComboBox;
    PenStyleComboBox->addItem(tr("SolidLine"),static_cast<int>(Qt::SolidLine));
    PenStyleComboBox->addItem(tr("DashLine"),static_cast<int>(Qt::DashLine));
    PenStyleComboBox->addItem(tr("DotLine"),static_cast<int>(Qt::DotLine));
    PenStyleComboBox->addItem(tr("DashDotLine"),static_cast<int>(Qt::DashDotDotLine));
    PenStyleComboBox->addItem(tr("DashDotDotLine"),static_cast<int>(Qt::DashDotDotLine));
    PenStyleComboBox->addItem(tr("CustomDashLine"),static_cast<int>(Qt::CustomDashLine));
    connect(PenStyleComboBox, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated),
            this, &PaintEx::ShowPenStyle);
    PenCapLabel = new QLabel(tr("画笔顶帽:"));
    PenCapComboBox  = new QComboBox;
    PenCapComboBox->addItem(tr("SquareCap"),Qt::SquareCap);
    PenCapComboBox->addItem(tr("FlatCap"),Qt::FlatCap);
    PenCapComboBox->addItem(tr("RoundCap"),Qt::RoundCap);
    connect(PenCapComboBox,static_cast<void (QComboBox::*)(int)>(&QComboBox::activated),
            this, &PaintEx::ShowPenCap);

    PenJoinLabel = new QLabel(tr("画笔连接点:"));
    PenJoinComboBox = new QComboBox;
    PenJoinComboBox->addItem(tr("BevelJoin"),Qt::BevelJoin);
    PenJoinComboBox->addItem(tr("MiterJoin"),Qt::MiterJoin);
    PenJoinComboBox->addItem(tr("RoundJoin"),Qt::RoundJoin);
    connect(PenJoinComboBox,static_cast<void (QComboBox::*)(int)>(&QComboBox::activated),
            this, &PaintEx::ShowPenJoin);

    FillRuleLabel  = new QLabel(tr("填充模式:"));
    FillRuleComboBox = new QComboBox;
    FillRuleComboBox->addItem(tr("Old Even"),Qt::OddEvenFill);
    FillRuleComboBox->addItem(tr("Winding"),Qt::WindingFill);
    connect(FillRuleComboBox,static_cast<void (QComboBox::*)(int)>(&QComboBox::activated),
            this, &PaintEx::ShowFillRule);

    SpreadLabel = new QLabel(tr("铺展效果:"));
    SpreadComboBox = new QComboBox;
    SpreadComboBox->addItem(tr("PadSpread"),QGradient::PadSpread);
    SpreadComboBox->addItem(tr("Repeat"),QGradient::RepeatSpread);
    SpreadComboBox->addItem(tr("ReflectSpread"),QGradient::ReflectSpread);
    connect(SpreadComboBox,static_cast<void (QComboBox::*)(int)>(&QComboBox::activated),
            this, &PaintEx::ShowSpreadStyle);

    BrushColorLabel = new QLabel(tr("画刷颜色:"));
    BrushColorFrame = new QFrame;
    BrushColorFrame->setFrameStyle(QFrame::Panel|QFrame::Sunken);
    BrushColorFrame->setAutoFillBackground(true);
    BrushColorFrame->setPalette(QPalette(Qt::green));
    BrushColorBtn = new QPushButton(tr("更改"));
    connect(BrushColorBtn,&QPushButton::clicked,this,&PaintEx::ShowBrushColor);

    BrushStyleLabel = new QLabel(tr("画刷风格:"));
    BrushStyleComboBox = new QComboBox;
    BrushStyleComboBox->addItem(tr("SolidPattern"),static_cast<int>(Qt::SolidPattern));
    BrushStyleComboBox->addItem(tr("Dense1Pattern"),static_cast<int>(Qt::Dense1Pattern));
    BrushStyleComboBox->addItem(tr("Dense2Pattern"),static_cast<int>(Qt::Dense2Pattern));
    BrushStyleComboBox->addItem(tr("Dense3Pattern"),static_cast<int>(Qt::Dense3Pattern));
    BrushStyleComboBox->addItem(tr("Dense4Pattern"),static_cast<int>(Qt::Dense4Pattern));
    BrushStyleComboBox->addItem(tr("Dense5Pattern"),static_cast<int>(Qt::Dense5Pattern));
    BrushStyleComboBox->addItem(tr("Dense6Pattern"),static_cast<int>(Qt::Dense6Pattern));
    BrushStyleComboBox->addItem(tr("Dense7Pattern"),static_cast<int>(Qt::Dense7Pattern));
    BrushStyleComboBox->addItem(tr("HorPattern"),static_cast<int>(Qt::HorPattern));
    BrushStyleComboBox->addItem(tr("VerPattern"),static_cast<int>(Qt::VerPattern));
    BrushStyleComboBox->addItem(tr("CrossPattern"),static_cast<int>(Qt::CrossPattern));
    BrushStyleComboBox->addItem(tr("BDiagPattern"),static_cast<int>(Qt::BDiagPattern));
    BrushStyleComboBox->addItem(tr("FDiagPattern"),static_cast<int>(Qt::FDiagPattern));
    BrushStyleComboBox->addItem(tr("DiagCrossPattern"),static_cast<int>(Qt::DiagCrossPattern));
    BrushStyleComboBox->addItem(tr("LinearGradientPattern"),static_cast<int>(Qt::LinearGradientPattern));
    BrushStyleComboBox->addItem(tr("ConicalGradientPattern"),static_cast<int>(Qt::ConicalGradientPattern));
    BrushStyleComboBox->addItem(tr("RadialGradientPattern"),static_cast<int>(Qt::RadialGradientPattern));
    BrushStyleComboBox->addItem(tr("TexturePattern"),static_cast<int>(Qt::TexturePattern));
    connect(BrushStyleComboBox,static_cast<void (QComboBox::*)(int)>(&QComboBox::activated),
            this, &PaintEx::ShowBrush);

    //布局开始
    RightLayout = new QGridLayout;
    RightLayout->addWidget(ShapeLabel,0,0);
    RightLayout->addWidget(shapeComboBox,0,1);
    RightLayout->addWidget(PenColorLabel,1,0);
    RightLayout->addWidget(PenColorFrame,1,1);
    RightLayout->addWidget(PenColorBtn,1,2);
    RightLayout->addWidget(PenWidthLabel,2,0);
    RightLayout->addWidget(PenWidthSpinBox,2,1);
    RightLayout->addWidget(PenStyleLabel,3,0);
    RightLayout->addWidget(PenStyleComboBox,3,1);
    RightLayout->addWidget(PenCapLabel,4,0);
    RightLayout->addWidget(PenCapComboBox,4,1);
    RightLayout->addWidget(PenJoinLabel,5,0);
    RightLayout->addWidget(PenJoinComboBox,5,1);
    RightLayout->addWidget(FillRuleLabel,6,0);
    RightLayout->addWidget(FillRuleComboBox,6,1);
    RightLayout->addWidget(SpreadLabel,7,0);
    RightLayout->addWidget(SpreadComboBox,7,1);
    RightLayout->addWidget(BrushColorLabel,8,0);
    RightLayout->addWidget(BrushColorFrame,8,1);
    RightLayout->addWidget(BrushColorBtn,8,2);
    RightLayout->addWidget(BrushStyleLabel,9,0);
    RightLayout->addWidget(BrushStyleComboBox,9,1);
    QHBoxLayout* MainLayout = new QHBoxLayout(this);
    MainLayout->addWidget(paintArea);
    MainLayout->addLayout(RightLayout);
    MainLayout->setStretchFactor(paintArea,1);
    MainLayout->setStretchFactor(RightLayout,0);

    ShowShape(shapeComboBox->currentIndex());










}

PaintEx::~PaintEx() {}

void PaintEx::ShowShape(int value)
{
    PaintArea::Shape shape = PaintArea::Shape(shapeComboBox->itemData(value,Qt::UserRole).toInt());
    paintArea->SetShape(shape);

}

void PaintEx::ShowPenWidth(int nValue)
{
    QColor Color = PenColorFrame->palette().color(QPalette::Window);
    Qt::PenStyle Style = Qt::PenStyle(PenStyleComboBox->itemData(PenStyleComboBox->currentIndex(),Qt::UserRole).toInt());
    Qt::PenCapStyle Cap = Qt::PenCapStyle(PenCapComboBox->itemData(PenCapComboBox->currentIndex(),Qt::UserRole).toInt());
    Qt::PenJoinStyle Join = Qt::PenJoinStyle(PenJoinComboBox->itemData(PenJoinComboBox->currentIndex(),Qt::UserRole).toInt());
    paintArea->SetPen(QPen(Color,nValue,Style,Cap,Join));
}

void PaintEx::ShowPenColor()
{
    QColor Color = QColorDialog::getColor(static_cast<int>(Qt::blue));
    PenColorFrame->setPalette(QPalette(Color));
    int nValue = PenWidthSpinBox->value();
    Qt::PenStyle Style = Qt::PenStyle(PenStyleComboBox->itemData(PenStyleComboBox->currentIndex(),Qt::UserRole).toInt());
    Qt::PenCapStyle Cap = Qt::PenCapStyle(PenCapComboBox->itemData(PenCapComboBox->currentIndex(),Qt::UserRole).toInt());
    Qt::PenJoinStyle Join = Qt::PenJoinStyle(PenJoinComboBox->itemData(PenJoinComboBox->currentIndex(),Qt::UserRole).toInt());
    paintArea->SetPen(QPen(Color,nValue,Style,Cap,Join));

}

void PaintEx::ShowPenStyle(int StyleValue)
{
    QColor Color = PenColorFrame->palette().color(QPalette::Window);
    int nValue = PenWidthSpinBox->value();
    Qt::PenStyle Style = Qt::PenStyle(PenStyleComboBox->itemData(StyleValue,Qt::UserRole).toInt());
    Qt::PenCapStyle Cap = Qt::PenCapStyle(PenCapComboBox->itemData(PenCapComboBox->currentIndex(),Qt::UserRole).toInt());
    Qt::PenJoinStyle Join = Qt::PenJoinStyle(PenJoinComboBox->itemData(PenJoinComboBox->currentIndex(),Qt::UserRole).toInt());
    paintArea->SetPen(QPen(Color,nValue,Style,Cap,Join));

}

void PaintEx::ShowPenCap(int capValue)
{
    QColor Color = PenColorFrame->palette().color(QPalette::Window);
    int nValue = PenWidthSpinBox->value();
    Qt::PenStyle Style = Qt::PenStyle(PenStyleComboBox->itemData(PenStyleComboBox->currentIndex(),Qt::UserRole).toInt());
    Qt::PenCapStyle Cap = Qt::PenCapStyle(PenCapComboBox->itemData(capValue,Qt::UserRole).toInt());
    Qt::PenJoinStyle Join = Qt::PenJoinStyle(PenJoinComboBox->itemData(PenJoinComboBox->currentIndex(),Qt::UserRole).toInt());
    paintArea->SetPen(QPen(Color,nValue,Style,Cap,Join));
}

void PaintEx::ShowPenJoin(int JoinValue)
{
    QColor Color = PenColorFrame->palette().color(QPalette::Window);
    int nValue = PenWidthSpinBox->value();
    Qt::PenStyle Style = Qt::PenStyle(PenStyleComboBox->itemData(PenStyleComboBox->currentIndex(),Qt::UserRole).toInt());
    Qt::PenCapStyle Cap = Qt::PenCapStyle(PenCapComboBox->itemData(PenCapComboBox->currentIndex(),Qt::UserRole).toInt());
    Qt::PenJoinStyle Join = Qt::PenJoinStyle(PenJoinComboBox->itemData(JoinValue,Qt::UserRole).toInt());
    paintArea->SetPen(QPen(Color,nValue,Style,Cap,Join));
}

void PaintEx::ShowSpreadStyle()
{
    spread = QGradient::Spread(SpreadComboBox->itemData(SpreadComboBox->currentIndex(),Qt::UserRole).toInt());

}

void PaintEx::ShowFillRule()
{
    Qt::FillRule rule =Qt::FillRule(FillRuleComboBox->itemData(FillRuleComboBox->currentIndex(),Qt::UserRole).toInt());
    paintArea->SetFillRule(rule);
}

void PaintEx::ShowBrushColor()
{
    QColor Color = QColorDialog::getColor(static_cast<int>(Qt::blue));
    BrushColorFrame->setPalette(QPalette(Color));
    ShowBrush(BrushStyleComboBox->currentIndex());

}

void PaintEx::ShowBrush(int value)
{
    QColor Color = BrushColorFrame->palette().color(QPalette::Window);
    Qt::BrushStyle style = Qt::BrushStyle(BrushStyleComboBox->itemData(value,Qt::UserRole).toInt());
    if(style == Qt::LinearGradientPattern)
    {
        QLinearGradient LinearGradient(0,0,400,400);
        LinearGradient.setColorAt(0.0,Qt::white);
        LinearGradient.setColorAt(0.2,Color);
        LinearGradient.setColorAt(1.0,Qt::black);
        LinearGradient.setSpread(spread);
        paintArea->SetBrush(LinearGradient);
    }
    else if(style == Qt::RadialGradientPattern)
    {
        QRadialGradient RadialGradient(200,200,150,150,100);
        RadialGradient.setColorAt(0.0,Qt::white);
        RadialGradient.setColorAt(0.2,Color);
        RadialGradient.setColorAt(1.0,Qt::black);
        RadialGradient.setSpread(spread);
        paintArea->SetBrush(RadialGradient);
    }
    else if(style == Qt::ConicalGradientPattern)
    {
        QConicalGradient conicalGradient(200,200,30);
        conicalGradient.setColorAt(0.0,Qt::white);
        conicalGradient.setColorAt(0.2,Color);
        conicalGradient.setColorAt(1.0,Qt::black);
        conicalGradient.setSpread(spread);
        paintArea->SetBrush(conicalGradient);
    }
    else if(style == Qt::TexturePattern)
    {
        paintArea->SetBrush(QBrush(QPixmap("312.png")));

    }
    else
    {
        paintArea->SetBrush(QBrush(Color,style));
    }
}

main.cpp

#include "paintex.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    PaintEx w;
    w.show();
    return a.exec();
}

运行图

在这里插入图片描述

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

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

相关文章

DZ主题模板 Discuz迪恩淘宝客购物风格商业版模板

Discuz淘宝客网站模板&#xff0c;迪恩淘宝客购物风格商业版模板。 版本支持&#xff1a;discuzx3.0版本,discuzx3.1版本,discuzx3.2版本。 包括网站首页&#xff0c;论坛首页&#xff0c;论坛列表页&#xff0c;论坛内容页&#xff0c;论坛瀑布流,频道列表页&#xff0c;频道…

开学季好物合集有哪些?全方位必备好物推荐

随着秋风轻拂&#xff0c;书页翻新的声音在耳边悄然响起&#xff0c;我们迎来了又一个开学季。在这个特别的时刻&#xff0c;每位学子都怀揣着对未来的无限憧憬&#xff0c;踏入了校园的大门。为了帮助大家更好地适应新学期的学习节奏&#xff0c;享受更加充实而愉快的校园生活…

解决Linux安装epel源提示没有可用安装包

目录 前言 常规方法总结 1、命令直接安装 2、通过网址下载安装 手动安装 1、EPEL的资源地址 2、选择版本 3、找到rpm文件存放位置 4、下载并移动至虚拟机中 5、安装 6、成功后会生成相应的repo文件 7、更新源 前言 EPEL&#xff0c; 即Extra Packages for Enterpri…

STM32开发资料

文章目录 前言一、正点原子&#xff1f;1. 资料链接2.论坛3.参考资料盘 二、野火1. 论坛2. 资料链接 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 学习需要&#xff1a;找一个开发板的资料作为基础 提示&#xff1a;以下是本篇文章正文内容&…

Redis 键值对操作全攻略

文章目录 一 . get 和 set二 . keys *三 . exists四 . del五 . expire六 . ttl七 . Redis 的 key 的过期策略八 . 定时器的实现8.1 基于优先级队列8.2 基于时间轮实现的定时器 九 . type十 . 数据库管理相关命令 Hello , 大家好 , 这个专栏给大家带来的是 Redis 系列 ! 本篇文章…

聊聊客户端/服务器与订阅/发布两大模型

正文 大家好&#xff0c;我是bug菌&#xff5e; 在项目开发中根据不同的应用场景通常会去尝试各种各样的通信方式&#xff0c;可能试来试去可能又回到了原地&#xff0c;而对于一个相对比较大的网络系统&#xff0c;不同的场景得考量不同的通信架构模型&#xff0c;那么今天就跟…

面向对象23种设计模式通俗理解

终点即是起点,自强不息! 设计模式的理解 设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 模式&#xff1a;在某些场景下&#xff0c;针对某类问题的某种通用的解决方案。 场景&#xff1a;项目所在的环境 问题&#xff1a;约束条件&#xff0c;项目目标…

慷智serdes调试记录(AIM951-958)

项目使用的是AIM951~958 951和958测试图谱输出 下面是两种1920*1080不同屏幕timing的951图谱输出&#xff08;一般我们提供屏幕timing&#xff0c;然后找慷智FAE要下寄存器配置&#xff0c;他有一个xcel文档&#xff0c;可以自己设置屏幕timing然后得到寄存器设置值&#xff…

Vue 3 Composition API 中如何正确添加表单项副本到数组

在 Vue 3 中&#xff0c;使用 Composition API 时&#xff0c;如果你尝试直接通过引用&#xff08;如 formState&#xff09;来填充 formList 数组&#xff0c;你会遇到一个问题&#xff1a;所有通过 addForm 方法添加的表单项实际上都是对 formState 的同一个引用。这意呀着&a…

K3 给K+增加日志(获取机器名和IP地址)

K3有个外挂系统是K&#xff0c;可以对数据进行修改&#xff0c;但是没有日志功能&#xff0c;谁修改了什么、什么时候修改的不知道&#xff0c;借鉴t_log做一个日志 1、先建一个日志表 CREATE TABLE [dbo].[kplus_log]([FlogID] [int] IDENTITY(1,1) NOT NULL,[FDate] [datet…

CST软件如何计算天线fidelity保真度?达索代理思茂信息

天线保真度&#xff08;fidelity&#xff09;是指辐射信号和输入信号的相似程度&#xff0c;用最大归一化值表示[-1&#xff0c;1]。单独天线的保真度用端口激励信号和空间探针接收信号计算&#xff1b;双天线的保真度可用接收天线端口信号和发射天线的激励信号计算。所以在一定…

基于深度学习的谣言监测系统-毕业设计

介绍 本项目是一款基于深度学习的谣言监测系统&#xff0c;利用 LSTM 模型实现对网络谣言的自动识别和监测。在互联网和社交媒体高速发展的背景下&#xff0c;本项目的推出具有重要意义&#xff0c;旨在提高谣言识别的准确性和效率&#xff0c;帮助公众快速辨别真伪信息&#…

Java中类的成员介绍

我的后端学习大纲 我的Java学习大纲 4.类的成员&#xff1a; 3.1.类的成员 -> 属性介绍&#xff08;成员变量&#xff09;&#xff1a; a.语法格式&#xff1a; 1.修饰符 数据类型 属性名 初始化值 ;2.说明1: 修饰符 常用的权限修饰符有&#xff1a;private、缺省、prot…

自动驾驶TPM技术杂谈 ———— 多目标跟踪

文章目录 介绍目标外观模型目标形状模型目标特征描述颜色特征梯度信息纹理特征光流特征边缘特征多特征融合 目标运动估计约束型模型描述型模型 目标检测线上检测器线下检测器 数据关联 介绍 目标跟踪技术一直以来都是计算机视觉领域中的一个核心分支。多目标跟着那个又因其技术…

【Linux】进程(第九篇)

目录 1.进程概述 2.进程的内存布局 3.Linux和Windows空间对比 4.进程控制块&#xff08;PCB&#xff09; 5.进程的状态 6.进程的状态转换 7.进程源语 8.fork() 1.进程概述 进程是操作系统进行资源分配的最小单位&#xff0c;而内存是进程运行必不可少的资源。那么&…

鱼哥好书分享活动第30期:一本书看完教你学习如何做B端竞品分析?《有效竞品分享》

鱼哥好书分享活动第30期&#xff1a;一本书看完教你学习如何做B端竞品分析&#xff1f;《有效竞品分享》 01 明确目标&#xff1a;案例分享&#xff1a;案例背景&#xff1a; 02 选择竞品&#xff1a;2.1 竞品的分类2.2 如何找到B端的竞品&#xff1f;1.找售前/销售沟通。2.各个…

【自由能系列(中级),代码模拟】预测编码的核心:三个关键方程式的详解

预测编码的核心&#xff1a;三个关键方程式的详解 ——探索预测编码背后的数学原理与应用 核心结论&#xff1a;预测编码是一种基于贝叶斯定理的理论框架&#xff0c;它通过三个关键方程式描述了大脑如何处理和解释来自环境的信号。这些方程式分别建立了贝叶斯定理的简化形式、…

【机器学习】基扩展的基本概念以及其中的多项式回归、样条方法和广义可加模型的简单介绍(含python代码实例)

引言 基扩展是提升模型性能的重要工具&#xff0c;正确选择和应用基扩展方法可以显著提高模型的预测能力和解释性 文章目录 引言一、基扩展1.1 基扩展定义1.2 基扩展方法1.2.1 多项式基扩展1.2.2 样条基扩展1.2.3 径向基函数&#xff08;RBF&#xff09;1.2.4 傅里叶基扩展1.2.…

强制结束输入的方法

如果scanf要求输入两个数&#xff0c;现在只输入一个数&#xff0c;想要结束输入该怎么办呢&#xff1f; 此时如果按空格、TAB和Enter键都是无法结束输入的。 之前在“用恋爱脑搞懂scanf的返回值”一文中讲过&#xff0c; Windows的输入结束信号是Ctrl&#xff0b;Z&#xff…

ParallelsDesktop19可在任何Mac上运行Windows软件

ParallelsDesktop19是一款Mac虚拟机软件&#xff0c;可在任何Mac上运行Windows&#xff0c;体验不同操作系统之间的无缝集成&#xff0c;并具有创新设计和增强功能&#xff0c;如无密码登录与TouchID、支持macOSSonoma14和增强打印选项。此外&#xff0c;它还支持运行更多Windo…