マルチメディア検定&CG検定を受けちゃおう RSSを登録する

マルチメディア検定とCG検定を受けちゃいました。 過去の問題を自分なりに解いてみます。 自分のまとめと受験を考えてる方の参考になるように書くつもりです。

  • 周期 不定期(隔週刊希望)
  • 最新号 2008/09/02
  • 発行部数 190
  • マガジンID 0000008184
  • 個別ページ
最新号をメルマガでお届けします    
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
2004/04/06

MM検定&CG検定 2004年2号

この記事を取り寄せる

            MM_______________________
                挨 拶 
            ________________________CG

 年度も変わり、新しい生活をはじめた人もいるかと思います。
季節の変わり目でもありますので、体調にはお気をつけください。

            MM_______________________
                          検定「問題」を解こう
            ________________________CG

 今回は、かなり以前に発行した内容を再送信しております。

 問題は、CG−ARTS協会のサイト(http://www.cgarts.or.jp/)等で入
手して下さい。(要AcrobatReader)

     MM_______________________
      「2級問題 第1問」
     ________________________CG

 この問題はベジエ曲線に関する問題です。

《2000年度後期 2級問題 第1問》
 以下の文章は,パラメトリック曲線の描画について述べたものである.「 」
にもっとも適するものを解答群から選び,記号で答えよ.
        /P3
      P2/   
       \   
        \P1 
        /  
      P0/

図は4個の制御点P0,P1,P2,P3で表されるベジエ曲線を折れ線として描画し
たものである.この折れ線を描くためのアルゴリズムの概要は以下のように表
される.

1.n個の折れ線を引く為のパラメータ増分値?tを求める
2.パラメータtを0に設定する
3.ベジエ曲線の座標値PSを求める
4.カウンターが1からnになるまで以下の処理を繰り返す
 4−1.パラメータtを「a」だけ増加させる
 4−2.増加させたパラメータに対する座標値PEを求める
 4−3.PSからPEまでの「b」を引く
 4−4.PSの「c」をPEの「c」に置き換える

 このベジエ曲線上の座標値は,この4個の制御点P0,P1,P2,P3とパラメー
タtを用いる重み関数を用いて以下のように表される.

 P(t) = P0 (1-t)^3 + P1 3t(1-t)^2 + P2 3t^2(1-t) + P3 t^3
    = (1-t) ( (1-t)((1-t)P0 + tP1) + t((1-t)P1 + tP2) )
      + t ( (1-t)((1-t)P1 + tP2) + t((1-t)P2 + tP3) )

 これより,ベジエ曲線はパラメータtを用いて,隣り合う制御点の内分点を
求め,内分点間の内分点を求めることで,曲線状の点が求まることがわかる.
t=0.2に対する曲線上の点を求めた図は「d」であり,t=0.8の点を求めた図は
「e」となる.

【a〜cの解答群】
  ア.t      イ.座標値    ウ.曲線     エ.?t
  オ.線分     カ.パラメータ 

【d,eの解答群】
  ア.            イ.
        /P3            /P3    
      P2/            P2/      
       \             \      
        \P1           ・\P1    
       ・/             /     
      P0/            P0/      

  ウ.            エ.
        /P3            /P3    
      P2/            P2/・     
       \・            \      
        \P1            \P1    
        /             /     
      P0/            P0/      

注:問題文及び解答群の図は、私なりに勝手に文字で描き直したものですので、
 実際の図では、かなり違って見えます。必ず、問題を入手し図を確認してく
 ださい。
 また、P(t)を表す式において、べき乗を「^」で表している。 t^3 はtの3
 乗を意味している。

======================================================================
《考え方 と 回答》
 まず、問題文と数式をきちんと読みましょう。
 この問題では、アルゴリズムと、数式をきちんと理解できるるかどうかが、
答えにたどり着けるかどうかに大きく関わります。

問題文と数式を、図の説明として、書き直してみましょう。

        /P3
      P2/   
       \   
        \P1 
        /  
      P0/

図は4個の制御点P0,P1,P2,P3で表されるベジエ曲線を折れ線として描画し
たものである.この折れ線を描くためのアルゴリズムの概要は以下のように表
される.

 P(t) = P0 (1-t)^3 + P1 3t(1-t)^2 + P2 3t^2(1-t) + P3 t^3
    = (1-t) ( (1-t)((1-t)P0 + tP1) + t((1-t)P1 + tP2) )
      + t ( (1-t)((1-t)P1 + tP2) + t((1-t)P2 + tP3) )

 この問題では、数式から逃げるのではなく、数式を積極的に理解し、数式で
表されている内容と、文章で説明されている内容をきちんと把握しましょう。
この点が理解できれば、分かりやすい問題です。
 線分ABを、m:nに内分する点の座標Cは以下の式で表す事を思い出せば、
この問題は解けたも同然です。

   A  m  C  n  B
   −−−−−−+−−−−−−
    \     |     /
     \    |    /
      \   |   /
       \  |  /
        \ | /
         \/

      n×A + m×B
   C=−−−−−−−−−−−−
         m+n

参考
http://mis.edu.yamaguchi-u.ac.jp/~asao/koukou/bunten02.htm

 上の式において、m=t、n=1−tとしてみるとどうなるでしょうか。

      n×A + m×B
   C=−−−−−−−−−−−−
         m+n

      (1−t)×A + t×B
    =−−−−−−−−−−−−−−−
         t+(1−t)

    = (1−t)×A + t×B

分母が1になるため、tと(1−t)に内分する点が、簡単に表されました。

 ベジエ曲線上の座標値を表すP(t)も、t:(1−t)に内分する式になって
いることを当てはめていくと、以下のように簡単に表すことができます。

 (1-t)P0 + tP1 は、P0とP1をt:(1−t)に内分する点を表し、この点を
Q1とします。
同様に、P1とP2、P2とP3をt:(1−t)に内分する点を表し、これらの点を
それぞれQ2、Q3とします。
 Q1、Q2、Q3を使って、P(t)を書き換えると以下のようになります。

 P(t) = (1-t) ( (1-t)((1-t)P0 + tP1) + t((1-t)P1 + tP2) )
      + t ( (1-t)((1-t)P1 + tP2) + t((1-t)P2 + tP3) )

    = (1-t) ( (1-t) Q1 + t Q2  )
      + t ( (1-t) Q2 + t Q3 )

 さらに、Q1とQ2、Q2とQ3をt:(1−t)に内分する点を、それぞれR2、
R3とすると、P(t)は以下のように簡単に表せます。

 P(t) = (1-t) ( R2 ) + t ( R3 )

 ベジエ曲線上の座標値を表すP(t)も、見た目はとても長い式に見えますが、
うまく分解すると、とても単純な式になっていることに気づきます。つまり、
2点を結ぶ線分をt:(1−t)に内分する式を組み合わせただけです。
 説明を文章で書いていますが、この部分は、実際の図に書き込むと、もっと
よく理解できると思います。

これくらい数式を理解をしてから、アルゴリズムを理解していきましょう。

1.n個の折れ線を引く為のパラメータ増分値?tを求める

 図では、P0からP3までを10個の折れ線で表しているので、n=10です。
折れ線1個当たりのパラメータの増分値?tは、全体を10分割した値ですから、
この問題では(t:0≦t≦1)であるため、?t=1/10=0.1となり
ます。
 ここで、なぜ、(t:0≦t≦1)と考えたかです。次の2.に初期値を0
にするとあること。また、数式では、tと(1−t)により内分点を求めてい
ます。内分点を計算するには、tと(1−t)が共に0または正の数の必要が
あるため、これらの条件を満たすtの値は0≦t≦1となります。

2.パラメータtを0に設定する

 パラメータtの初期値を0とします。

3.ベジエ曲線の座標値PSを求める

 パラメータt=0における、ベジエ曲線の座標値PSを求めます。
 ベジエ曲線の座標値とは、問題の図で太いオレンジ色の線分の端点として表
されている緑色の点の座標値のことです。
図を見て、感覚的に PS=P0 と思っても差し支えないですが、厳密にはP(t)の
式に t=0を代入して計算するべきです。
 P(t) = P0 (1-t)^3 + P1 3t(1-t)^2 + P2 3t^2(1-t) + P3 t^3
    = P0 (1-0)^3 + P1 3x0(1-0)^2 + P2 3x0^2(1-0) + P3 0^3
    = P0
計算によっても PS=P0 であることが確認できました。

4.カウンターが1からnになるまで以下の処理を繰り返す
 4−1.パラメータtを「a」だけ増加させる

 n回(この問題では10)の計算によりパラメータtが0から1まで増加す
るようにするためには、1.で計算したように、1回当たり0.1増加する必
要があります。
 値としては0.1ですが、一般的な式として表すと?tです。

 4−2.増加させたパラメータに対する座標値PEを求める

 パラメータを0.1(?t)増加させたとき、元の座標値(PS)より、少し
だけP3に近づいた点の座標値(PE)がP(t)により計算できます。
 線分ABを比率t:(1−t)において内分する場合、tの値が増えるほど、
点Bに近づくことと同じ理由です。

 4−3.PSからPEまでの「b」を引く

 次の4−4.で、この回の計算に使用したPSの「c」を置き換え、値を保存
しなくなります。そのため、この段階におけるPSの「c」を保存する方法を考
えます。PSとPEの2点で表すことが可能なものはいくつかありますが、この場
合は、単純に2点を結ぶ線分が分かりやすいでしょう。

 4−4.PSの「c」をPEの「c」に置き換える

 次の線分を計算するために必要な値を考えると、座標値が必要です。
4−2.でも「座標値PEを求める」とあるので、ここでは、PSの座標値をPEの
座標値に置き換える操作が適切です。

 最後に、【d,eの解答群】で示されている図が、何を表しているのか考え
てみましょう。
 P(t)が「隣り合う制御点の内分点を求め,内分点間の内分点を求める」こと
は問題文の説明に書いています。また、内分点を求める比率がt:(1−t)
であることから、パラメータtの値が増加すれば、内分点は後ろの方の点に近
づいていきます。
 このことを頭において、解答群の図を見てみましょう。
 特に、最初の内分点(P0とP1を内分する点、上でQ1と名称をつけた点)を見
ると、ア.、イ.、ウ.、エ.の順に、P0から離れ、P1に近づいています。
同様にP2とP3を内分する点をみても、ア.、イ.、ウ.、エ.の順に、P2から
離れ、P3に近づいています。内分する比率を大まかに見てみると、ほぼ同じ間
隔で増加していることから、0.2、0.4、0.6、0.8であるように読み取れます。
この比率は、内分比のことですから、パラメータtの値のことです。
 従って、d、eに該当する答えは、ア.、エ.となります。


 数式が出てくる問題では、数式そのものがヒントになるので、式の意味を理
解してから問題を解きましょう。

======================================================================
 「こんな内容で発行して欲しい」という希望や問題に対する質問や
         があったら、メール下さい。
     メールアドレス : cgmm@mail.goo.ne.jp
======================================================================
 MMmmMMmmMMmmMMmmMMmmMMmmMMmmMMmmMMmmMMmmMMmmMMmmMMmmMMmmMMmmMMmmMMmm
[あとがき]バックナンバーは以下のサイトで見ることができます。
      http://backno.mag2.com/reader/Back?id=0000008184
・文字、図がずれるようだったら、等幅フォントでご覧下さい
・メールアドレスが変わりましたら、再登録をお願いします
このメールマガジンの解除はhttp://www.kaijo.com/
にてできます。登録番号は0000008184です。
発行者:なりぶー
Copyright(C), 2004  mm&cg    許可無く転載することを禁じます。
 CGcgCGcgCGcgCGcgCGcgCGcgCGcgCGcgCGcgCGcgCGcgCGcgCGcgCGcgCGcgCGcgCGcg
======================================================================
このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して
発行しています。( http://www.mag2.com/ )
======================================================================

          
     姉妹マガジンのご案内 (とても勉強になります。)
 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
      +++MM・IT問題集メールマガジン+++
        http://www.mag2.com/ ID:21861
        http://www.melma.com/ ID:m00028108
     http://www.professional.to/~mm_it/
 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*


↓の部分は、発行に利用させていただいているまぐまぐ様がつけております。

この記事を取り寄せる
最新号をメルマガでお届け
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。

最近の記事

上へ戻る