• 抗锯齿渲染


    (逻辑绘图)图像在坐标图中的显示:

    笔的默认宽度为1,当笔的宽度大于1时,相当于在则条线的两边均匀加厚,确定坐标的还是这条宽度为1的线段,相当于宽度的中心位置。

     

    物理绘图 (默认情况)

    默认情况下,绘制会产生锯齿,使用以下规则绘制:

    • 当宽度为一像素时,像素会在数学定义的点的右边和下边进行渲染
    • 当偶数像素的画笔进行渲染时,像素会对称渲染
    • 当奇数像素的笔画时,像素会在右边和下边渲染

    这样的图像会产生锯齿 

    当矩形用QRect类表示时的坐标问题:

    使用QRect::button()和QRect::right(),返不准确的坐标,建议不使用right()和button()

    • right() 返回的是 :left() +width() - 1
    • button()返回的是:top()+height()-1
    • 建议使用:   x()+width()  表示 right()
    • 建议使用:y()+height() 表示  button()

    建议使用QRectF 使用浮点数,QRect::button()和QRect::right()返回的是准确的位置。

     

     

     抗锯齿绘图:

    抗锯齿又称为反锯齿或者反走样,对图像的边缘进行平滑处理,使其看起来更加柔和和流畅的技术。

     设置抗锯齿函数:

    QPainter::setRenderHint(RenderHint hint,bool on=true)

     RenderHint hint的种类:

    QPainter::Antialiasing指示引擎应尽可能消除基元的边缘锯齿
    QPainter::TextAntialiasing指示引擎应尽可能消除文本锯齿。
    QPainter::SmoothPixmapTransfrom指示引擎应使用平滑的像素图转换算法(如双线性)而不是最近邻

    如果在绘制时使用了抗锯齿渲染提示, 如果设置了QPainter::Antialiasing

    像素会在数学定义的点的两侧对称地进行渲染。

     

  • 相关阅读:
    前端设置env配置文件yaml/json格式 在项目中读取
    leetcode贪心算法:Gas Station
    [golang] 零值和nil
    数据质量问题根源剖析
    【每日一记】OSPF区域划分详讲、划分区域的优点好处
    使用yum进行软件安装的基础命令
    IC设计高级017:控制类寄存器2种实现方式
    Paddlepaddle使用自己的VOC数据集训练目标检测(0废话简易教程)
    【C++】继承
    SWT/Jface(1): 表格的创建和渲染
  • 原文地址:https://blog.csdn.net/qq_45303986/article/details/127948158