図形操作編


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

「起動」すると「画面」を表示し、メニュー等のコマンドによって「終了」するだけのアプリケーションを作成せよ。

「画面」をクリヤせよ

試しに「画面」の真ん中に水平線を一本引け

試しに「画面」の中心を通る垂直線を一本引け

描画のベースとなる領域の縦横比を1.4:1(縦長)に設定せよ。

「画面」上の位置X1,Y1からX2,Y2を結ぶ「直線」を引く手続き実装せよ

マウスなどによって2点を指定し、二点を結ぶ「直線」を引け。最初の点を指定した後、二点目を指定するまでの間にESCキーが押されたら、指定前の状態に戻るようにせよ。

マウスなどによって指定された二点をアプリケーション内に保持する機構を実装せよ。

「画面」上の位置X1,Y1からX2,Y2を結ぶ「直線」を引く手続き実装せよ。ただし、直線上に元々ある各点の色を「反転」させるように引け。つまりこの直線を二度続けて引くと「反転」に「反転」が適用され、線が消えることになる。

上記反転直線描画手続きを使用して二点間の指定にラバーバンドによる表現を実現せよ。

保持されている情報を使い「画面」の再描画を実装せよ。これはアプリケーションが「ディアクティブ」になった後、再び「アクティブ」になった時に必要となる。つまり、一度他のアプリケーションに切り替え、再び戻したときに、直線を正しい位置に再表示出来るようにせよ。

保持されている情報をファイルに書き出せ。

保存した直線情報をファイルから読み出して、クリヤされた画面に再描画せよ。

描画されている直線を紙に印刷せよ。

直線を複数指定できるようにせよ。各直線を決定する二点の情報は、指定された順番に並べて保持せよ。保持できる個数には理論上の制限を設けてはいけない。

メニューなどから、「削除」を指定すると、最後に指定された二点で結ばれる直線を取り消すようにせよ。取り消した後、画面を再描画せよ。取り消しは何回でも出来るようにせよ。

アプリケーションが保持している二点の組群を、順番を保ったまま指定されたファイルに書き出せ。つまり、描画した「絵」を保存せよ。

保存した「絵」をファイルから読み出して、クリヤされた画面に再描画せよ。

描画されている絵を紙に印刷せよ。

「画面」上の位置X1,Y1からX2,Y2を結ぶ「直線」を引く手続き実装せよ。線の色を指定できるようにせよ。線の太さも指定出来るようにせよ。

アプリケーションの内部情報に、線分の両端位置の情報の他に、線分の太さと色を追加せよ。

マウスなどによって、線の一つを「選択」できるようにせよ。線の両端の点のみではなく、線上の任意の点を指定しても「選択」できるようにせよ。

「選択」された線分について、ダイアログなどを使用して、線の色と太さを指定、変更できるようにせよ。変更された情報は、アプリケーションの内部情報に格納せよ。

再描画手続きを変更して、線分の色と太さを反映して表示できるようにせよ。

拡張されたアプリケーション情報をファイルに書き出すように変更せよ。

保存されたアプリケーション情報をファイルから読み出して、クリヤされた画面に再描画せよ。

太さと色を持つ線分を含む絵を紙に印刷せよ。

「画面」上の位置X1,Y1を左上端とし、X2,Y2を右下端となるような長方形(矩形)を表示する手続きを実装せよ。同様に線の太さと色を指定できるようにせよ。

アプリケーションの内部情報に、線分と矩形を区別する情報を追加せよ。

二点を指定して矩形を描画できるようにせよ。このとき、線の太さと色を指定できるようにせよ。

マウスなどによって矩形の一つを選択できるようにせよ。矩形の頂点のみではなく、矩形の線上の任意の位置を指定しても選択できるようにせよ。

選択された矩形について、ダイアログなどを使用して、線の太さと色を指定、変更できるようにせよ。変更された情報は、アプリケーションの内部情報に格納せよ。

再描画手続きを変更して、矩形の色と太さを反映して表示できるようにせよ。

拡張されたアプリケーション情報をファイルに書き出すようにせよ。

保存されたアプリケーション情報をファイルから読み出して、クリヤされた画面に再描画せよ。

色と太さの指定された線分と矩形を含む絵を紙に印刷せよ。

「画面」上の位置X1,Y1を左上端とし、X2,Y2を右下端となるような長方形(矩形)内部を指定した色で塗り潰す手続きを実装せよ。

「画面」上の位置X1,Y1を左上とし、X2,Y2を右下端となる「矩形」を描画する手続き実装せよ。ただし、矩形線上に元々ある各点の色を「反転」させるように引け。つまりこの直線を二度続けて引くと「反転」に「反転」が適用され、線が消えることになる。

上記反転矩形描画手続きを使用して矩形の指定にラバーバンドによる表現を実現せよ。

アプリケーションの内部情報を、線分と矩形枠と塗りつぶし矩形を区別するように拡張せよ。

マウスなどによって塗りつぶし矩形の一つを選択できるようにせよ。矩形の内部の任意の点を指定することによって選択できるようにせよ。

選択された塗りつぶし矩形について、ダイアログなどを使用して、塗りつぶし色を変更できるようにせよ。変更された情報は、アプリケーションの内部情報に格納せよ。

再描画手続きを拡張して、塗りつぶし矩形にも対応するようにせよ。

拡張されたアプリケーション情報をファイルに書き出すようにせよ。

保存されたアプリケーション情報をファイルから読み出して、クリヤされた画面に再描画せよ。

色と太さを持つ線分、矩形枠、塗りつぶし矩形を含む絵を紙に印刷せよ。

「画面」上の位置X1,Y1を左上端とし、X2,Y2を右下端となるような長方形(矩形)に内接する楕円形を描く手続きを実装せよ。線の太さと色も指定出来るようにせよ。

アプリケーションの内部情報を線分と、矩形枠と塗りつぶし矩形と楕円枠を区別するように拡張せよ。

マウスなどによって、楕円枠の一つを指定できるようにせよ。楕円上の任意の点を指定することによって選択できるようにせよ。

選択された楕円枠について、ダイアログなどを使用して、楕円線の太さと色を指定できるようにせよ。変更され情報は、アプリケーションの内部情報に格納せよ。

再描画手続きを拡張して、楕円枠にも対応するようにせよ。

拡張されたアプリケーション情報をファイルに書き出すようにせよ。

保存されたアプリケーション情報をファイルから読み出して、クリヤされた画面に再描画せよ。

色と太さを持つ線分、矩形枠、楕円枠、塗りつぶし矩形を含む絵を紙に印刷せよ。

「画面」上の位置X1,Y1を左上端とし、X2,Y2を右下端となるような長方形(矩形)に内接する楕円形の内部を指定した色で塗り潰す手続きを実装せよ。

アプリケーションの内部上を拡張して、線分、矩形枠、楕円枠、塗りつぶし矩形、塗りつぶし楕円を判別できるようにせよ。

マウスなどによって、塗りつぶし楕円の一つを指定できるようにせよ。楕円内の任意の点を指定することによって選択できるようにせよ。

選択された塗りつぶし楕円について、ダイアログなどを使用して、楕円の塗りつぶし色を指定、変更できるようにせよ。変更された情報は、アプリケーションの内部情報に格納せよ。

再描画手続きを拡張して、塗りつぶし楕円にも対応するようにせよ。

拡張されたアプリケーション情報をファイルに書き出すようにせよ。

保存されたアプリケーション情報をファイルから読み出して、クリヤされた画面に再描画せよ。

色と太さを持つ線分、矩形枠、楕円枠、塗りつぶし矩形、楕円を含む絵を紙に印刷せよ。

取り消し動作によって直前のオブジェクトの描画を取り消すようにせよ。取り消し動作はどこまででも戻れるようにせよ。

マウスなどによって、文字列の印字開始位置を指定し、別途入力された文字列を表示せよ。

アプリケーションの内部上を拡張して、線分、矩形枠、楕円枠、塗りつぶし矩形、塗りつぶし楕円、文字列を判別できるようにせよ。文字列の内容とフォント及びサイズの情報を格納出来るように拡張せよ。

マウスなどによって、文字列の一つを指定できるようにせよ。文字列領域内の任意の点を指定することによって選択できるようにせよ。

選択された文字列について、ダイアログなどを使用して、文字列のフォントと大きさを指定、変更できるようにせよ。変更された情報は、アプリケーションの内部情報に格納せよ。

再描画手続きを拡張して、文字列にも対応するようにせよ。

拡張されたアプリケーション情報をファイルに書き出すようにせよ。

保存されたアプリケーション情報をファイルから読み出して、クリヤされた画面に再描画せよ。

色と太さを持つ線分、矩形枠、楕円枠、塗りつぶし矩形、楕円、文字列を含む絵を紙に印刷せよ。

取り消し動作によって直前のオブジェクトの描画を取り消すようにせよ。取り消し動作はどこまででも戻れるようにせよ。

(このあとは任意の機能を適宜拡張してください)

(2012/01/10)