先上代码
#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,如果设置不是这个范围,那么在这个范围外的图形全部不显示。