自学内容网 自学内容网

【graphics】图形绘制 C++

众所周知,周知所众,图形绘制对于竞赛学僧毫无用处,所以这个文章,专门对相关人员教学(成长中的码农、高中僧、大学僧)。

他人经验教学参考icon-default.png?t=O83Ahttps://blog.csdn.net/qq_46107892/article/details/133386358?ops_request_misc=%257B%2522request%255Fid%2522%253A%252289C483B5-388C-4B36-A90E-471425FF9B9C%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=89C483B5-388C-4B36-A90E-471425FF9B9C&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-133386358-null-null.142%5Ev100%5Epc_search_result_base1&utm_term=c%2B%2B%E5%9B%BE%E5%BD%A2&spm=1018.2226.3001.4187

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)!