グラフ上の図形を左右・あるいは上下「逆」にしてみましょう。例えば、左向きの矢印を右向きにしたり、上向きの矢印を下向きにする、という処理です。
まず、アプレットで実際にどんな処理をするのか、ご覧ください。Rev-Xボタンは左右反転でRev-Y ボタンは上下反転、さらにExc-XYはX とYを「入れ替える」ボタンです。マウスで適当な位置をクリックしたり、ドラッグして図形をかいたらボタンをクリックします。
このアプレットでは、図形のデータはboolean型2次元配列dot[32][32]に入っています(つまり、図形を描くグラフは32*32のマス目)。反転する時はこの配列に対して処理をして、その結果を表示するわけです。
まず、左右反転について考えてみましょう。左右に反転する、とは一番左にある点を一番右に、左端から2番目の点を右端から2番目に移動する処理です。この処理を行うためには、まず図形のデータと同じ形の配列を用意して、そこに図形のデータをコピーしておきます。次に、コピーした配列を左端から読み込んで、それを図形の配列の右端から書き込んでいけば、図形の配列には元の図形と左右が「逆」になった図形が作られるでしょう。つまり「左右反転」できたわけです。
上下反転は、コピーした図形の下端から読み込んで、それを図形データの上端から書き込みます(当然逆でも可)。
左右反転なら、図形データと同じ形の配列wdot[32][32]に図形データをコピーした後、
・プログラム例(左右反転) for (i=0;i<32;i++) /* 左右逆にコピー */ for (j=0;j<32;j++) dot[j][i]=wdot[31-j][i];
とすれば良いわけです。配列の要素は、第1番目がX方向で、その大きさは32(0-31)ですから、j番目の要素を「左右逆」にしたければ、それを「31-j」に移動すれば良いわけですね。
最後に、X-Y交換は単純にXとYを入れ替えるだけです。こうすると、図形を直線Y=X(赤い線)に対して対称(折り返したような感じ)に移動できます。座標は、左上が(0、0)で右下が(31、31)。