【graphics】图形绘制 C++
众所周知,周知所众,图形绘制对于竞赛学僧毫无用处,所以这个文章,专门对相关人员教学(成长中的码农、高中僧、大学僧)。
scratch / python
相信大家都听过scratch,是什么,它,就是最基础的图形化编译器,类似拼积木的编程,先来看一起scratch的图形案例:
这里的图形可以手动绘制,甚至是造型,动效等,这相当于编译器里的编译器,基本纯属是培养编程兴趣与基础。 但是与c++类似的python,用的是海龟库,一点一点画出来,与c++基本相同。
给大家看看区别
· scratch 手工绘制
· python 海龟库
· c++ OpenCV
废话不多说,开始教学
用于绘制直线的 line 函数;
在C++的OpenCV库中,你可以使用line函数来绘制一条直线。这个函数允许你指定线段的起点和终点,以及线段的颜色和线宽。
以下是line函数的基本语法:
void line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color,
int thickness = 1, int lineType = LINE_8, int shift = 0);
img :要在其上绘制线段的图像。
pt1 :线段的起点坐标。
pt2 :线段的终点坐标。
color :线段的颜色,通常使用Scalar来表示颜色,如Scalar(0, 0, 255)表示红色。
thickness:线段的宽度,默认为1。
lineType:线段的类型,通常使用LINE_8表示8连通线段。
shift:可选参数,用于设置坐标的小数位数。
用于绘制椭圆的 ellipse 函数;
在C++的OpenCV库中,你可以使用ellipse
函数来绘制一个椭圆。这个函数允许你指定椭圆的中心点、长轴和短轴的长度、旋转角度、起始角度、结束角度、颜色和线宽等参数。
以下是ellipse
函数的基本语法:
void ellipse(InputOutputArray img, Point center, Size axes, double angle,
double startAngle, double endAngle, const Scalar& color,
int thickness = 1, int lineType = LINE_8, int shift = 0);
img:要在其上绘制椭圆的图像。
center:椭圆的中心点坐标。
axes:一个Size对象,表示椭圆的长轴和短轴的长度。
angle:椭圆的旋转角度(以度为单位)。
startAngle:椭圆弧的起始角度(以度为单位)。
endAngle:椭圆弧的结束角度(以度为单位)。
color:椭圆的颜色,通常使用Scalar来表示颜色,如Scalar(0, 0, 255)表示红色。
thickness:椭圆的线宽,默认为1。
lineType:椭圆的类型,通常使用LINE_8表示8连通线段。
shift:可选参数,用于设置坐标的小数位数。
以下是一个使用ellipse
函数绘制椭圆的示例:
#include <opencv2/opencv.hpp>
int main() {
cv::Mat image(400, 600, CV_8UC3, cv::Scalar(255, 255, 255)); // 创建一个白色图像
cv::Point center(300, 200); // 椭圆中心点
cv::Size axes(100, 50); // 长轴和短轴的长度
double angle = 45.0; // 椭圆的旋转角度
double startAngle = 0.0; // 起始角度
double endAngle = 360.0; // 结束角度
cv::Scalar color(0, 0, 255); // 红色椭圆
int thickness = 2; // 线宽
// 在图像上绘制椭圆
cv::ellipse(image, center, axes, angle, startAngle, endAngle, color, thickness);
cv::imshow("Ellipse", image);
cv::waitKey(0);
cv::destroyAllWindows();
return 0;
}
在这个示例中,我们首先创建一个白色的图像,然后使用cv::ellipse函数绘制了一个红色的椭圆,指定了中心点、长轴和短轴的长度、旋转角度、起始角度、结束角度、颜色和线宽。
用于绘制矩形的 rectangle 函数;
在C++的OpenCV库中,你可以使用rectangle函数来绘制一个矩形。这个函数允许你指定矩形的两个对角点的坐标、颜色和线宽等参数。
以下是rectangle函数的基本语法:
void rectangle(InputOutputArray img, Point pt1, Point pt2,
const Scalar& color, int thickness = 1, int lineType = LINE_8,
int shift = 0);
原文地址:https://blog.csdn.net/jimmyLuo5/article/details/143832845
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!