先上代码
#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/video.hpp>
using namespace cv;
using namespace std;
#define WINDOW_WIDTH 600//自定义窗口大小的宏
void DrawEllipse(Mat img, double angle) {
int thickness = 2;
int lineType = 8;
ellipse(img,
Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2),
Size(WINDOW_WIDTH / 2, WINDOW_WIDTH / 4),
angle,
0,
360,
Scalar(255, 129, 0),
thickness,
lineType);
}
int main(int argc, char** argv)
{
Mat img = Mat::zeros(WINDOW_WIDTH, WINDOW_WIDTH, CV_8UC3);
//DrawEllipse(img, 90);
//DrawEllipse(img, 0);
DrawEllipse(img, 45);
DrawEllipse(img, 60);
DrawEllipse(img, 80);
imshow("name1", img);
waitKey(0);
return 0;
}
效果

函数解析

传入的angle
默认的水平右为0度,顺时针转动为正度数。逆时针转动为负度数。
扩展弧度
一般设置0-360,如果设置不是这个范围,那么在这个范围外的图形全部不显示。
本文通过C++代码示例展示了如何使用OpenCV库绘制不同角度的椭圆。代码中定义了一个DrawEllipse函数,该函数接受一个角度参数,以窗口宽度的一半为中心,绘制椭圆。角度的正向是顺时针方向,负向为逆时针。文章还提到,通常设置角度范围为0到360度,超出此范围的图形将不会显示。在主函数中,程序绘制了45、60、80度的椭圆,帮助读者理解角度变化对图形形状的影响。
573





