QT开发中文网

qt绘制一条正弦曲线

要在Qt中绘制一条正弦曲线,你可以使用QPainter类。下面是一个简单的示例代码:

#include <QtWidgets>

class SinusoidWidget : public QWidget {
public:
    SinusoidWidget(QWidget *parent = nullptr) : QWidget(parent) {}

protected:
    void paintEvent(QPaintEvent *) override {
        QPainter painter(this);
        
        int width = this->width();
        int height = this->height();
        
        painter.setRenderHint(QPainter::Antialiasing, true); // 抗锯齿
        
        painter.translate(width / 2, height / 2); // 将坐标系原点移至中心
        
        // 设置曲线的颜色和宽度
        QPen pen(Qt::blue);
        pen.setWidth(2);
        painter.setPen(pen);
        
        // 绘制正弦曲线
        const int step = 1; // 步长,控制曲线的平滑程度
        const double scale = 40.0; // 缩放因子,调整曲线的大小
        
        QPointF prevPoint;
        
        for (int x = -width / 2; x < width / 2; x += step) {
            double radian = qDegreesToRadians(x / scale); // 角度转换为弧度
            double y = -qSin(radian) * scale;
            
            if (!prevPoint.isNull()) {
                painter.drawLine(prevPoint, QPointF(x, y));
            }
            
            prevPoint.setX(x);
            prevPoint.setY(y);
        }
    }
};

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    SinusoidWidget widget;
    widget.show();

    return app.exec();
}

这段代码创建了一个自定义的QWidget派生类SinusoidWidget,并重写了它的paintEvent()函数来绘制正弦曲线。在主函数中创建SinusoidWidget实例并显示出来。

运行代码后,你将看到一个窗口显示一条蓝色的正弦曲线。可以根据需要调整缩放因子、颜色和宽度等参数来定制曲线的样式。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=4299

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?