This Opencv C++ Tutorial is about drawing a Pentagon.
In the previous tutorials we learn about drawing a Square and a Line.
To draw the Square we obtained the Co-ordinates of the vertices of the square and then joined those vertices with a Line.
Similarly in order to draw the Pentagon we first need to obtain the Co-ordinates of its Vertices.
Output:
In the previous tutorials we learn about drawing a Square and a Line.
To draw the Square we obtained the Co-ordinates of the vertices of the square and then joined those vertices with a Line.
Similarly in order to draw the Pentagon we first need to obtain the Co-ordinates of its Vertices.
Refer the Figure Below:
ϴ=72º (∵ ϴ = 360º/5)
Now, In ∆OBC,
Seg OB=Seg OC;
Thus, m∠OBC=m∠OCB=x;
x+x+72º=180º ( Since Sum of All angles of a Triangle is 180º )
2x=180º - 72º ;
x=54º
i.e. m∠OBC=m∠OCB=54º;
Also,
m∠ABC=108º;
Thus, m∠ABQ=72º; & Seg BC=a;
Seg QB=a*Cos(72º);
∴ QR=QB + BC + CR;
& QB=CR;
Thus, 2*a*Cos(72º) + a =QR
where QR is the Length of the Side of the window.
Here QR=500
Thus a=500/(1+2*Cos(72º));
//Opencv C++ Example for drawing a Pentagon #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> #include <math.h> using namespace cv; using namespace std; int main( ) { double pi=3.14; //Length of a Side of Regular Pentagon int a=500/(1+2*cos(pi*72/180)); // Create black empty images Mat image = Mat::zeros( 500, 500, CV_8UC3 ); line( image, Point((a*cos(pi*72/180)), 500), Point(500-(a*cos(pi*72/180)),500), Scalar( 255, 255, 0 ), 2, 8 ); imshow("Image",image); waitKey( 500 ); line( image, Point(500-(a*cos(pi*72/180)),500), Point( 500, 500-(a*sin(pi*72/180)) ), Scalar( 255, 255, 0 ), 2, 8 ); imshow("Image",image); waitKey( 500 ); line( image, Point(500, 500-(a*sin(pi*72/180))), Point(250, 0), Scalar( 255, 255, 0 ), 2, 8 ); imshow("Image",image); waitKey( 500 ); line( image, Point(250, 0), Point(0, 500-(a*sin(pi*72/180))), Scalar( 255, 255, 0 ), 2, 8 ); imshow("Image",image); waitKey( 500 ); line( image, Point(0, 500-(a*sin(pi*72/180))), Point((a*cos(pi*72/180)), 500), Scalar( 255, 255, 0 ), 2, 8 ); imshow("Image",image); waitKey( 0 ); return(0); }
Output:
No comments:
Post a Comment