五角星:
代码:
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QPaintEvent>
#include <QPainter>
#include <QPainterPath>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
setWindowTitle("Draw Five-Pointed Star");
//setFixedSize(300, 300);
setPalette(Qt::red);
update();
}
Widget::~Widget()
{
delete ui;
}
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
//启用抗锯齿渲染,这可以让绘制的图形看起来更加平滑,减少锯齿状的边缘
painter.setRenderHint(QPainter::Antialiasing);
//启用文字的抗锯齿渲染,这可以让绘制的文字更加清晰,减少锯齿状的边缘。
painter.setRenderHint(QPainter::TextAntialiasing);
qreal R=100;
const qreal Pi=3.14159;
//将 72 度这个角度转换成弧度制的值,并存储在 deg 变量中
qreal deg=Pi*72/180;
//五角星的中点为原点,QPoint(R,0)是第一个点
QPoint points[5]={
QPoint(R,0),
//根据qCos(deg)和qSin(deg)算出在坐标轴的位置,“-”表示Y轴向下(表示方向)
QPoint(R*qCos(deg),-R*qSin(deg)),
QP