1 #include <stdio.h>
2 #include <opencv/cv.h>
3 #include <opencv/cxcore.h>
4 #include <opencv/highgui.h>
5 #include <math.h>
6
7 long long bazal [101][102];
8 /************
9 1
10 1 1
11 1 2 1
12 1 3 3 1
13 ************/
14
15 void set_bazal()
16 {
17 for (int i = 0; i < 101; i++)
18 {
19 for (int j = 0; j < 102; j++)
20 {
21 bazal[i][j] = 1;
22 }
23 }
24 for (int i = 2; i < 101; i++)
25 {
26 for (int j = 2; j < i+1; j++)
27 {
28 bazal[i][j] = bazal[i-1][j-1] + bazal[i-1][j];
29 }
30 }
31 for (int i = 1; i < 30; i++)
32 {
33 for (int j = 1; j <= i+1; j++)
34 {
35 printf("%10ld", bazal[i][j]);
36 }
37 printf("\n");
38 }
39 }
40
41 int main(int argc, char argv[])
42 {
43 set_bazal();
44 getchar();
45 IplImage* srcimg = cvLoadImage("Jellyfish.jpg", 1);
46 CvFont font;
47 cvInitFont(&font,CV_FONT_HERSHEY_DUPLEX ,1.0f,1.0f,0,1,CV_AA);
48 cvPutText(srcimg, "123123",cvPoint(100, 100), &font,CV_RGB(255,255,0));
49
50 int x0 = 100;
51 int y0 = 100;
52
53 int x1 = 300;
54 int y1 = 200;
55
56 int x2 = 500;
57 int y2 = 20;
58
59 int x3 = 700;
60 int y3 = 100;
61
62
63 for(float i = 0; i <= 1; i += 0.001 )
64 {
65
66 CvPoint centerpoint;
67 centerpoint.x= (int)((double)(x0) * powf(i, 3) * powf(1-i, 0) * bazal[3][1] + (double)(x1) * powf(i, 2) * powf(1-i, 1) * bazal[3][2] + (double)(x2) * powf(i, 1) * powf(1-i, 2) * bazal[3][3] + (int)((double)(x3) * powf(i, 0) * powf(1-i, 3) * bazal[3][4]) );
68 centerpoint.y= (int)((double)(y0) * powf(i, 3) * powf(1-i, 0) * bazal[3][1] + (double)(y1) * powf(i, 2) * powf(1-i, 1) * bazal[3][2] + (double)(y2) * powf(i, 1) * powf(1-i, 2) * bazal[3][3] + (int)((double)(y3) * powf(i, 0) * powf(1-i, 3) * bazal[3][4]) );
69 cvCircle( srcimg, centerpoint ,1 , CV_RGB(0,255,0),1, 8, 3 );
70 }
71
72 cvNamedWindow("srcimg");
73 cvShowImage("srcimg", srcimg);
74 cvWaitKey(0);
75 cvDestroyWindow("srcimg");
76 cvReleaseImage(&srcimg);
77 getchar();
78 return 0;
79 }