m0103244 須田温子
シャガ
観察した植物の画像
デザインした画像
アプレットの使用方法
元の図形は黒で表示。変換ボタンを押すことにより、変換された図形が青で表示される。
変換は元の図形から計算され行われる。なお、テキストフィールドの値は以下のようになる。
1.a11、a12、a13、a21、a22、a23
これらの数値は、以下の式に当てはめられ変換される。
x' = a11*x + a12*y + a13
y' = a21*x + a22*y + a13
(x'、y'は変換後の座標)
2.x軸平行移動
入力した数値分x軸方向に平行移動する。
3.y軸平行移動
入力した数値分y軸方向に平行移動する。
4.拡大・縮小
入力数値>1の場合、入力した数値倍拡大する。
0<入力数値<1の場合、入力した数値率縮小する。
5.回転
入力した角度分、回転する。
6.x軸拡大・縮小
拡大、縮小をx軸のみに対して変換する。入力値「-1」で左右対称となる。
7.y軸拡大・縮小
拡大、縮小をy軸のみに対して変換する。入力値「-1」で上下対称となる。
◆アプレットの ソース です。
このプログラムの構成は、次のようになっている。
使用する変数、ボタン、テキストフィールド、ラベルの用意
↓
表示するものを設定する(項目、テキストフィールド初期値、ボタン、図形)
↓
入力された数値を取得する
↓
フィールドの設定
↓
元の図形の表示
↓
アフィン変換式の各計算(元図形(x、y)、変換後図形(x、y)とする)
・式
x' = a11*x + a12*y + a13
y' = a21*x + a22*y + a13 への代入
・x軸平行移動
x'=x+入力値
・y軸平行移動
y'=y+入力値
・拡大、縮小
x'=x*入力値
y'=y*入力値
・回転
x'=x*cosθ-y*sinθ(θ=入力値)
y'=x*sinθ+y*cosθ(θ=入力値)
・x軸のみ拡大、縮小
x'=x*入力値
・y軸ののみ拡大、縮小
y'=y*入力値
↓
変換後の図形を表示する
考察
アフィン変換の式だけではどのような図形の変換を行っているか分かりずらいと感じたので、
式以外でのさまざまな変換をつけたした。これらの変換を利用することで、式がどのように図形に
変換を加えているのかが分かりやすくなったと考えられる。
これらの変換を利用して、回転を一回転させたり、平行移動もすこしずつずらしたものを
表示できたらもっとデザインに近いものになると感じた。このような工夫を出来たらよかった。
感想
この演習を通して改めて数式を使っての、図形の変換方式を理解することができた。
今回は直線のみの図形にしてしまったが、前回習ったBezier曲線を利用したらもっと
植物に近いデザインが出来ただろう。