您的位置:首页 > 编程语言 > Qt开发

QT绘制多边形-----五边形

2020-02-06 02:05 369 查看

*QT绘制多边形

  • 今天学习qt绘制多边形的绘制
    1.先创建一个新项目Application->Qt Widgets Application
    2.在头文件.h添加: protected: //在保护成员中,重写painterEvent
    void paintEvent(QPaintEvente);
    3.在文件.cpp(不是main.cpp)添加
    #include
    #include void MainWindow::paintEvent(QPaintEvente){
    //绘制多边形 本例中直接写的六边形
    int count=5;
    int radius=100;//多边形的边数,半径

    QPainter painter(this);//指定本窗口绘图设备
    //设置为抗锯齿,并且设置画笔颜色为浅灰色
    painter.setRenderHint(QPainter::Antialiasing);
    painter.setPen(Qt::lightGray);
    //绘图设备的坐标原点(0,0)在左上角,水平向右增长,垂直向下增长。
    painter.translate(width()/2.,height()/2.);
    
    //开始绘制多边形,并为每个区域上色
    for(int i=0;i<count;++i){
    //设中心点到边的垂线与半径的夹角为degree=(360/count)/2
    
    float degree=180./count;
    //先将坐标进行旋转,然后在绘制
    painter.rotate(2*degree);
    //设边长的一半为wid,则wid=radius*sin(degree)
    //原点到边的距离为hei,则hei=radius*cos(dergee)
    //在程序中三角函数都是以弧度为基准,所以要先将角度转化成弧度
    //头文件要包含Qtmath
    float radian =qDegreesToRadians(degree);
    float wid = radius*qSin(radian);
    float hei =radius*qCos(radian);
    //绘制该三角区块
    QPainterPath path;
    path.lineTo(-wid,-hei);
    path.lineTo(wid,-hei);
    path.lineTo(0,0);
    painter.drawPath(path);
    //随机生成一个颜色,作为该区块的颜色,并上色
    QColor color(qrand()%255,qrand()%255,qrand()%255,150);
    painter.fillPath(path,color);
    }

    } 然后执行Qmake,再运行(记得保存哦哦) 出来是五边形

  • 点赞 1
  • 收藏
  • 分享
  • 文章举报
Lisa? 发布了2 篇原创文章 · 获赞 1 · 访问量 214 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: