zoukankan      html  css  js  c++  java
  • Qt绘制文本二 弯曲排列和旋转效果 弧形路径 正弦函数路径

    void WgtText::paintEvent(QPaintEvent *event)
    {
        QPainter painter(this);
        QString m_string("abcdefghijklmnopqrstuvwxy");
        int font_size = 15;
        float x0 = font_size * m_string.count() * 0.5;
        int YSize = font_size * m_string.count() * 0.5;
        for(int i=0; i<m_string.count(); i++)
        {
    
    
            // 按圆弧函数绘制
            painter.save();
            float tAlpha = i*3.14/m_string.count();
            float tx = YSize*cos(tAlpha) + YSize;
            float ty = YSize*sin(tAlpha);
            painter.translate(tx, ty);    // 文字的位置
            painter.rotate(180*i/(float)(m_string.count())); // 将文字本身旋转
            painter.drawText(QPointF(-10.0, 10.0), QString("%1").arg(m_string[i]));
            painter.restore();
    
    
        }
    
    
    }

    --------------------------------------------------------------------------------------


    void WgtText::paintEvent(QPaintEvent *event)
    {
    
    
        QPainter painter(this);
        int font_size = 10;
        // 设置字符间距
        int text_space = 2;
        int wh = height();
        QFont font;
        font.setFamily("Microsoft YaHei");
        // 大小
        font.setPointSize(font_size);
        // 使用字体
        painter.setFont(font);
    
    
        static QString m_string("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
    
    
        for(int i=0; i<m_string.count(); i++)
        {
            // 按正弦函数绘制
            float tx = (font_size + text_space) * i;
            float ty = sin(tx);
            //压缩y坐标
            ty = wh/2 + ty*(wh/2*0.2);
            painter.drawText(QPointF(tx, ty), QString("%1").arg(m_string[i]));
        }
    
    
        return QWidget::paintEvent(event);
    
    
    }
  • 相关阅读:
    洛谷 P1194 飞扬的小鸟 题解
    洛谷 P1197 星球大战 题解
    洛谷 P1879 玉米田Corn Fields 题解
    洛谷 P2796 Facer的程序 题解
    洛谷 P2398 GCD SUM 题解
    洛谷 P2051 中国象棋 题解
    洛谷 P1472 奶牛家谱 Cow Pedigrees 题解
    洛谷 P1004 方格取数 题解
    洛谷 P2331 最大子矩阵 题解
    洛谷 P1073 最优贸易 题解
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/10142944.html
Copyright © 2011-2022 走看看