回答編集履歴
2
描画するだけの話を追記
    
        answer	
    CHANGED
    
    | @@ -66,4 +66,49 @@ | |
| 66 66 | 
             
            }
         | 
| 67 67 | 
             
            ```
         | 
| 68 68 |  | 
| 69 | 
            -
            
         | 
| 69 | 
            +
            
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            ---
         | 
| 72 | 
            +
             | 
| 73 | 
            +
            円形の グラデーションを 描画 することが目的(結果の絵が欲しいだけ)なのであれば,
         | 
| 74 | 
            +
            (コメントにも書いたように)単にその話をそのまま実施する,すなわち,明るさを変えながら円を複数回描画するのが最も素直と言える.(結果画像は割愛)
         | 
| 75 | 
            +
             | 
| 76 | 
            +
            ```C++
         | 
| 77 | 
            +
            const int IMG_SIZE = 240;   //画像サイズ(x,yで共用)
         | 
| 78 | 
            +
            const int CENTER = IMG_SIZE/2;  //てきとーに決めた円の中心(x,yで共用)
         | 
| 79 | 
            +
            const int RADIUS = 100; //円の半径
         | 
| 80 | 
            +
             | 
| 81 | 
            +
            int main()
         | 
| 82 | 
            +
            {
         | 
| 83 | 
            +
                //点Aの座標 = (Ax,Ay)
         | 
| 84 | 
            +
                const int Ax = CENTER + 45;
         | 
| 85 | 
            +
                const int Ay = CENTER + 25;
         | 
| 86 | 
            +
             | 
| 87 | 
            +
                //MEMO : 正規化した世界で考えている変数は,変数名末尾にアンダーバー'_'を付与しています.
         | 
| 88 | 
            +
                const double Ax_ = double(Ax-CENTER)/RADIUS;
         | 
| 89 | 
            +
                const double Ay_ = double(Ay-CENTER)/RADIUS;
         | 
| 90 | 
            +
             | 
| 91 | 
            +
                //画像バッファ準備
         | 
| 92 | 
            +
                cv::Mat Img( IMG_SIZE, IMG_SIZE, CV_8UC1 ); //IMG_SIZE*IMG_SIZEの画像バッファを用意
         | 
| 93 | 
            +
                Img = 100;  //画像全体を背景の輝度値で埋めておく.値はてきとー.
         | 
| 94 | 
            +
             | 
| 95 | 
            +
                //塗りつぶし円を256回描画する
         | 
| 96 | 
            +
                for( int t=0; t<=255; ++t )
         | 
| 97 | 
            +
                {
         | 
| 98 | 
            +
                    double t_ = t / 255.0;  //0~1
         | 
| 99 | 
            +
                    double cx_ = Ax_ * t_;  //円の中心
         | 
| 100 | 
            +
                    double cy_ = Ay_ * t_;  //円の中心
         | 
| 101 | 
            +
                    double r_ = 1.0 - t_;   //円の半径
         | 
| 102 | 
            +
             | 
| 103 | 
            +
                    int cx = CENTER + cvRound( cx_ * RADIUS );
         | 
| 104 | 
            +
                    int cy = CENTER + cvRound( cy_ * RADIUS );
         | 
| 105 | 
            +
                    int r = cvRound( r_ * RADIUS );
         | 
| 106 | 
            +
                    cv::circle( Img, cv::Point(cx,cy), r, cv::Scalar(t), -1 );
         | 
| 107 | 
            +
                }
         | 
| 108 | 
            +
                
         | 
| 109 | 
            +
                //結果画像の表示
         | 
| 110 | 
            +
                cv::imshow( "Img", Img );
         | 
| 111 | 
            +
                if( cv::waitKey() == 's' ){ cv::imwrite( "Result.png", Img );   }
         | 
| 112 | 
            +
                return 0;
         | 
| 113 | 
            +
            }
         | 
| 114 | 
            +
            ```
         | 
1
誤変換を修正
    
        answer	
    CHANGED
    
    | @@ -4,7 +4,7 @@ | |
| 4 4 | 
             
            点Aの場所がずれた場合,単純に,下図の真ん中のグラフのようになるのだと考える.
         | 
| 5 5 |  | 
| 6 6 | 
             
            これを,下図右側の絵のように,たくさんの円盤(緑横線)を位置をずらしながら重ねたような形だと考えれば,
         | 
| 7 | 
            -
            各円盤の | 
| 7 | 
            +
            各円盤の径と中心位置は,明るさに対して線形に変化する形だ.
         | 
| 8 8 | 
             
            話を簡単にするために中心が原点の単位円で考えれば,明るさをt(0~1)としたとき,明るさtの円盤は
         | 
| 9 9 |  | 
| 10 10 | 
             
            * 半径(t) = 1-t
         | 
