画正多边形的稍微难理解一些,是运用了数学上的在正多边形在一个围绕着他的圆中以圆心建一个规则的坐标系,推导而来的。
绘制圆弧,也可以画圆,这里的参数(外接长方形的起始坐标x,y,宽,开始的角度,结束的角度)(要*16因为单位1/16)。
//绘制直线
painter.drawLine(10,20,100,200);
//绘制圆弧
painter.drawArc(200,200,200,200,0*16,360*16);
//画扇形,参数和圆弧的大致一致
painter.drawPie(100,100,100,100,0*16,270*16);
//画椭圆,参数好懂
painter.drawEllipse(50,50,50,50);
//画正多边形(利用圆在圆心建系)
//下例是正六边形
int n=6;
QPoint *points=new QPoint[n];
for(int i=0;i<n;i++)
{
double x=200+200*cos(2*π/n*i);
double y=200+200*sin(2*π/n*i);
points[i]=QPoint(x,y);
}
painter.drawPolygon(points,6);
` void Dialog::initpixmap()
{
for(int i=0;i<64;i++)
{
QString filename=QString(":/new/prefix1
/images/1_%1.png").
arg(i+1,2,10,QLatin1Char('0'));
QPixmap map(filename);
pixmap[i]=map;
}
}`
`for(int i=0;i<8;i++)
{
QRect q(0,0,80,91);
QRect q1(2*80*i,200,2*80,2*91);
//参数(目标大小,图片,截取的大小)
painter.drawPixmap(q1,pixmap[timecount+8*i],q);
}//painter.drawPixmap(rect(),pixmap[timecount]);`
if(event->timerId()==event1)
{
static int i=0;
i++;
//转换成Qstring类型
ui->label->setText(QString::number(i));
}