Qt dibujo función COS

El sistema de dibujo de Qt es extremadamente poderoso. Muestremos el método de dibujo general para dibujar gráficos personalizados.

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]);
    }
}

El efecto de dibujo es el siguiente:

El código anterior muestra una idea aproximada de dibujo. Si desea dibujar una imagen muy hermosa, debe calcular la relación entre el tamaño de la ventana y el punto de dibujo. Solo después de una comparación y cálculo tan cuidadosos podemos dibujar gráficos muy satisfactorios. Por supuesto, esto también tiene una gran relación con la cantidad de muestras recolectadas.

 

 

242 artículos originales publicados · Me gusta 180 · Visitas 160,000+

Supongo que te gusta

Origin blog.csdn.net/zy010101/article/details/105449397
Recomendado
Clasificación