最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

OpenCV畫任意圓弧曲線

 更新時(shí)間:2020年08月19日 15:48:10   作者:激萌小宅  
這篇文章主要為大家詳細(xì)介紹了OpenCV畫任意圓弧曲線,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

逆時(shí)針畫圓弧,原理:將360度分割成36份,分別標(biāo)出每10度角度時(shí)的坐標(biāo)點(diǎn),然后將每個點(diǎn)連接起來。 

#include <iostream> 
#include <opencv2\core\core.hpp>
#include <opencv2\opencv.hpp> 
#include <opencv2\highgui\highgui.hpp> 
#include <opencv2\contrib\contrib.hpp> 
 
#include <fstream> 
#include <windows.h>
 
using namespace cv;
using namespace std;
 
// 圖像、圓心、開始點(diǎn)、結(jié)束點(diǎn)、線寬
void DrawArc(Mat *src, Point ArcCenter, Point StartPoint, Point EndPoint, int Fill)
{
 if (Fill <= 0) return;
 
 vector<Point> Dots;
 double Angle1 = atan2((StartPoint.y - ArcCenter.y), (StartPoint.x - ArcCenter.x));
 double Angle2 = atan2((EndPoint.y - ArcCenter.y), (EndPoint.x - ArcCenter.x));
 double Angle = Angle1 - Angle2;
 Angle = Angle * 180.0 / CV_PI;
 
 if (Angle < 0) Angle = 360 + Angle;
 if (Angle == 0) Angle = 360;
 int brim = floor(Angle / 10); // 向下取整
 
 Dots.push_back(StartPoint);
 for (int i = 0; i < brim; i++)
 {
 double dSinRot = sin(-(10 * (i + 1)) * CV_PI / 180);
 double dCosRot = cos(-(10 * (i + 1)) * CV_PI / 180);
 int x = ArcCenter.x + dCosRot * (StartPoint.x - ArcCenter.x) - dSinRot * (StartPoint.y - ArcCenter.y);
 int y = ArcCenter.y + dSinRot * (StartPoint.x - ArcCenter.x) + dCosRot * (StartPoint.y - ArcCenter.y);
 Dots.push_back(Point(x, y));
 }
 Dots.push_back(EndPoint);
 RNG &rng = theRNG();
 Scalar color = Scalar(rng.uniform(100, 255), rng.uniform(100, 255), rng.uniform(100, 255));
 for (int i = 0; i < Dots.size() - 1; i++) {
 line(*src, Dots[i], Dots[i + 1], color, Fill);
 }
 Dots.clear();
}
 
int main()
{
 Mat Img = Mat::zeros(800, 800, CV_8UC3);
 int64 tim = getTickCount();
 
 // 坐標(biāo)零點(diǎn) 400,400
 Point ZeroPoint = Point(400, 400);
 // 起始坐標(biāo) 150,-100
 Point StartPoint = Point(ZeroPoint.x +150, ZeroPoint.y - (-100));
 // 結(jié)束坐標(biāo) -150,-100
 Point EndPoint = Point(ZeroPoint.x - 150, ZeroPoint.y - (-100));
 
 // 圓心相對起始點(diǎn)的坐標(biāo) -150,200
 int I = StartPoint.x - 150;
 int J = StartPoint.y - (+200);
 
 Point Arc = Point(I, J);
 
 // 顯示圓心坐標(biāo)
 circle(Img, Arc, 5, Scalar(0, 0, 255), -1);
 // 顯示起始點(diǎn)坐標(biāo)
 circle(Img, StartPoint, 5, Scalar(255, 0, 0), -1);
 // 顯示結(jié)束點(diǎn)坐標(biāo)
 circle(Img, EndPoint, 5, Scalar(0, 255, 0), -1);
 
 // 圖像、圓心、開始點(diǎn)、結(jié)束點(diǎn)、線寬
 DrawArc(&Img, Arc, StartPoint, EndPoint, 2);
 imshow("正多邊形", Img);
 
 tim = getTickCount() - tim;
 printf("處理耗時(shí): %fms\n\n", tim * 1000 / getTickFrequency());
 waitKey(0);
 return 0;
}

效果如下:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++中this指針的理解與作用詳解

    C++中this指針的理解與作用詳解

    這篇文章主要給大家介紹了關(guān)于C++中this指針的理解與作用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • C++ find函數(shù)及用法小結(jié)

    C++ find函數(shù)及用法小結(jié)

    string類的find()函數(shù)用于在字符串中查找字符或子串,返回第一個匹配的位置,C++中的find()函數(shù)有多種用法,本文通過實(shí)例代碼給大家詳細(xì)講解,感興趣的朋友一起看看吧
    2023-12-12
  • C++中std::tuple和std::pair的實(shí)現(xiàn)

    C++中std::tuple和std::pair的實(shí)現(xiàn)

    std::tuple和std::pair是兩種極具實(shí)用性的數(shù)據(jù)結(jié)構(gòu),本文主要介紹了C++中std::tuple和std::pair的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-02-02
  • 深入解析C++的WNDCLASS結(jié)構(gòu)體及其在Windows中的應(yīng)用

    深入解析C++的WNDCLASS結(jié)構(gòu)體及其在Windows中的應(yīng)用

    這篇文章主要介紹了C++的WNDCLASS結(jié)構(gòu)體及其在Windows中的應(yīng)用,WNDCLASS被用來定義窗口,文中介紹了其諸多屬性,需要的朋友可以參考下
    2016-01-01
  • C語言實(shí)現(xiàn)簡單的圖書管理系統(tǒng)

    C語言實(shí)現(xiàn)簡單的圖書管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單的圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • 用C++實(shí)現(xiàn)SLR語法分析程序

    用C++實(shí)現(xiàn)SLR語法分析程序

    大家好,本篇文章主要講的是用C++實(shí)現(xiàn)SLR語法分析程序,感興趣的同學(xué)趕緊來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • C指針原理教程之C內(nèi)嵌匯編

    C指針原理教程之C內(nèi)嵌匯編

    在學(xué)習(xí) C 語言內(nèi)嵌匯編的實(shí)驗(yàn)過程中,發(fā)現(xiàn)內(nèi)嵌匯編極容易造成段錯誤。
    2019-02-02
  • C語言鏈表完整操作演示

    C語言鏈表完整操作演示

    這篇文章主要為大家詳細(xì)介紹了C語言鏈表的完整操作演示,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • c++ #include是怎么樣工作的?

    c++ #include是怎么樣工作的?

    大多數(shù)園友可能對“#include”比較熟悉,因?yàn)槲覀儗慍/C++程序的時(shí)候都會寫的字符串之一,但是它是具體怎么工作的?或者它的原理是什么呢?
    2013-01-01
  • C++中漢字字符串的截取

    C++中漢字字符串的截取

    C++中漢字字符串的截取,需要的朋友可以參考一下
    2013-05-05

最新評論

徐汇区| 雷山县| 治多县| 扶风县| 阿拉尔市| 斗六市| 广汉市| 盘锦市| 本溪市| 章丘市| 庆阳市| 方山县| 芜湖县| 西华县| 洛浦县| 库车县| 石屏县| 孝昌县| 钟山县| 渭南市| 鹤壁市| 瑞安市| 汉川市| 霍林郭勒市| 木里| 荔波县| 永和县| 邮箱| 准格尔旗| 三明市| 拜泉县| 奇台县| 曲麻莱县| 高唐县| 肇庆市| 辉县市| 同仁县| 巫山县| 含山县| 锦州市| 红原县|