首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Qt绘制COS函数

Qt绘制COS函数

作者头像
zy010101
发布2020-04-14 21:40:46
发布2020-04-14 21:40:46
1.6K00
代码可运行
举报
文章被收录于专栏:程序员程序员
运行总次数:0
代码可运行

Qt的绘图系统是极其强大的。下面来展示一下绘制自定义图形的大致绘图方式。

代码语言:javascript
代码运行次数:0
运行
复制
void MainWindow::paintEvent(QPaintEvent *event)
{
//    paint = new QPainter(this);
//    paint->setPen(QColor(0,0,255));
//    paint->drawLine(30,30,300,300);
//    paint->drawRect(100,100,100,100);
//    paint->setPen((QColor(255,0,0)));
//    paint->drawEllipse(QPoint(300,300),50,50);
   
    QPainter my_paint(this);
    my_paint.setPen(QColor(0,0,255));           //画笔是用来画轮廓的
    my_paint.setBrush(Qt::blue);                     //画刷是用来填充轮廓的
    my_paint.setRenderHint(QPainter::Antialiasing);             //反走样
    my_paint.drawEllipse(QPoint(200,200),100,100);
    
    my_paint.translate(205,0);                          //这相当于把画笔移动到(405,200)这里做画。
    my_paint.setPen(QColor(0,255,0));           //画笔是用来画轮廓的
    my_paint.setBrush(Qt::green);                   //画刷是用来填充轮廓的
    my_paint.drawEllipse(QPoint(200,200),100,100);

    //QPainter什么都能画,无所不能。这也正是Qt绘图系统的强大之处。

    //绘制COS函数图像
    my_paint.translate(-400,50);
    my_paint.setPen(QColor(0,0,255)); 
    double num_x[1000] = {0.0};
    int num_y[1000] = {0};
    double encrease = 0.1;
    for(int i = 0;i < 1000;i++)
    {
        num_x[i] += encrease;
        encrease += 0.1;
    }
    for (int i = 0;i < 1000; i++)
    {
        num_y[i] = 15*cos(num_x[i]);
    }
    for (int i = 0;i < 1000; i++) 
    {
        my_paint.drawPoint(i,400+num_y[i]);
    }
}

绘图效果如下所示:

上面代码展示的是大致的绘图思路。如果想画出来非常好看的图像,那么就需要精细的计算窗口尺寸和画点之间的关系。只有这样细致的比较计算之后才能画出来非常满意的图形。当然这也和采集的点的样本多少有极大的关系。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档