回答編集履歴
2
誤変換の修正
    
        answer	
    CHANGED
    
    | @@ -39,7 +39,7 @@ | |
| 39 39 | 
             
                cv::Mat Img( IMG_SIZE, IMG_SIZE, CV_8UC1 ); //IMG_SIZE*IMG_SIZEの画像バッファを用意
         | 
| 40 40 | 
             
                Img = 100;  //画像全体を背景の輝度値で埋めておく.値はてきとー.
         | 
| 41 41 |  | 
| 42 | 
            -
                //全画素について | 
| 42 | 
            +
                //全画素について走査し,その画素の輝度値を決めていく
         | 
| 43 43 | 
             
                for( int y=0; y<IMG_SIZE; ++y )
         | 
| 44 44 | 
             
                {
         | 
| 45 45 | 
             
                    unsigned char *pI = Img.ptr<unsigned char>( y );
         | 
1
内容説明を追加.
    
        answer	
    CHANGED
    
    | @@ -1,5 +1,8 @@ | |
| 1 | 
            +
            円を,球を正射影した像だと考え,画像上の画素位置(x,y)に対して,(3次元空間での)円の中心から(x,y)に対応する球面上の点までのベクトルを考えることができます.
         | 
| 1 | 
            -
             | 
| 2 | 
            +
            各画素の輝度値は,点Aから求めたベクトルと,各画素位置から求めたベクトルとの内積に基づき決定するのが簡単でしょう.
         | 
| 2 3 |  | 
| 4 | 
            +
            ↓のサンプルコードでは絵を作るのに OpenCV を使ってますが,計算内容はコードからわかるかと.
         | 
| 5 | 
            +
             | 
| 3 6 | 
             
            ```C++
         | 
| 4 7 | 
             
            const int IMG_SIZE = 240;   //画像サイズ(x,yで共用)
         | 
| 5 8 | 
             
            const int CENTER = IMG_SIZE/2;  //てきとーに決めた円の中心(x,yで共用)
         | 
