zoukankan      html  css  js  c++  java
  • 貝塞爾曲線

     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("
    ");
    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 }
  • 相关阅读:
    2019.9.5 Balanced Lineup
    0060-最小的四位数
    0059-乘积问题
    0058-简单的阶乘
    0057-简单的累加
    0056-简单的博弈
    神奇代码
    测评结果大百科
    0055-空气质量检测
    0054-软件版本号问题
  • 原文地址:https://www.cnblogs.com/ruichenduo/p/5958366.html
Copyright © 2011-2022 走看看