Qt 2D绘图(2):绘制椭圆、弧、弦、扇形、圆角矩形

Qt 2D绘图(2):绘制椭圆、弧、弦、扇形、圆角矩形

本文为原创文章,转载请注明出处,或注明转载自“黄邦勇帅(原名:黄勇)

本文出自本人原创著作《Qt5.10 GUI完全参考手册》网盘地址:
https://pan.baidu.com/s/1iqagt4SEC8PUYx6t3ku39Q
《C++语法详解》网盘地址:https://pan.baidu.com/s/1dIxLMN5b91zpJN2sZv1MNg

若对C++语法不熟悉,建议参阅本人所著《C++语法详解》一书,电子工业出版社出版,该书语法示例短小精悍,对查阅C++知识点相当方便,并对语法原理进行了透彻、深入详细的讲解,可确保读者彻底弄懂C++的原理,彻底解惑C++,知其然更知其所以然。此书是一本全面了解C++不可多得的案头必备图书。

需要使用到的QPainter类中的函数如下及表12-5所示
Qt 2D绘图(2):绘制椭圆、弧、弦、扇形、圆角矩形_第1张图片

Qt 2D绘图(2):绘制椭圆、弧、弦、扇形、圆角矩形_第2张图片

1、绘制椭圆的方法有:绘制给定矩形的内接椭圆和根据中心点与椭圆x方向和y方向的半径绘制椭圆,原理见图12-16
Qt 2D绘图(2):绘制椭圆、弧、弦、扇形、圆角矩形_第3张图片
2、绘制弧、弦、扇形的原理
1)、弧是椭圆上的一段曲线,因此其绘制方法就是首先绘制一个椭圆,然后指定一段从起点到结束点的曲线作为弧。弧、弦、扇形的原理是相同的,只是外观样式不同,图12-17是其样式。
在这里插入图片描述
2)、本文以弧为例讲解其绘制的原理,下面我们看看画弧的函数,原型如下:
Qt 2D绘图(2):绘制椭圆、弧、弦、扇形、圆角矩形_第4张图片

示例12.5:弧的绘制
本示例绘制一条跟踪弧起点和一条跟踪弧终点直线。
//m.h文件的内容
#ifndef M_H
#define M_H
#include
#include   						//C++数学函数头文件
class B:public QWidget{    Q_OBJECT
public:
B(QWidget *p1=0):QWidget(p1){}
void paintEvent(QPaintEvent *e){
   		 QPainter pr(this);
    		QRectF r1=QRectF(10,10,333,111);  	//椭圆的外接矩形
    		QPointF p1=r1.center();  			//矩形(即椭圆)中心点。
    		pr.drawArc(r1,30*16,111*16);  		//绘制一段弧。注意:需使用实际度数乘以16。
    		qreal pi=3.1415926;   				//指定π
    		qreal w=pi/180;
//绘制跟踪弧起点的直线,注:三角函数是以弧度形式指定的,而不是角度
    		qreal x=(r1.width()/2)*cos(30*w)+p1.x();		//计算弧起点的x坐标,公式原理详见图12-28。
    		qreal y=p1.y()-(r1.height()/2)*sin(30*w);  	//计算弧起点的y坐标
    		QPointF p2=QPointF(x,y);  					//弧起点的坐标
    		pr.drawLine(p1,p2);   						//绘制一条从椭圆中心到弧起点的直线
//绘制跟踪弧终点的直线
    		qreal x1=(r1.width()/2)*cos(141*w)+p1.x();
    		qreal y1=p1.y()-(r1.height()/2)*sin(141*w);
    		QPointF p3=QPointF(x1,y1);  				//弧终点的坐标
    		pr.drawLine(p1,p3); }};  					//绘制一条从椭圆中心到弧终点的直线
#endif // M_H

//m.cpp文件内容
#include "m.h"
int main(int argc, char *argv[]){    QApplication app(argc,argv);
   B w;    w.resize(444,333);    w.show();    return app.exec();  }

运行结果及说明见图12-19
Qt 2D绘图(2):绘制椭圆、弧、弦、扇形、圆角矩形_第5张图片

3、绘制带圆角的矩形的原理

圆角矩形的圆角是使用椭圆的四个象限分别对矩形的四个角进行圆角的。下面为绘制带圆角的矩形的函数原型
Qt 2D绘图(2):绘制椭圆、弧、弦、扇形、圆角矩形_第6张图片

本文作者:黄邦勇帅(原名:黄勇)

Qt 2D绘图(2):绘制椭圆、弧、弦、扇形、圆角矩形_第7张图片

你可能感兴趣的:(Qt,Qt,2D绘图,drawChord,drawArc,drawPie,drawEllipse)