吉岡さんの作品


/* 吉岡直美です。70109820 課題を提出します。 1 何を描こうとしたのか。 クリスマスツリーを、星、正三角形、正方形、長方形を組み合わせて描いてみました。 2 */ /* 課題10/24 自由に図形を描く クリスマスツリー */ import Turtle; class Christmastree extends Turtle{ void start(){ up(); fd(150); lt(90); fd(40); rt(90); down(); //枠内に収まるようにタートルの位置をずらす //星,木,鉢を各々描いていく star(); //星を描く tree(); //木を描く pot(); // 鉢を描く } //starメソッドの定義 void star(){ rt(90); //前処理(タートルの向きを変えておく) //星形の各辺を描く int i; for(i=1; i<=5; i++){ fd(45); rt(144); //星形の一辺を描く } rt(37); fd(28); rt(53); //後処理(次に木を描くためにタートルの位置と向きを変える) } //ツリーを正三角形を正方形で描くtreeメソッドの定義 void tree(){ rt(30); triangle(); //ツリーの葉の部分を正三角形で描く miki(); //ツリーの幹の部分を正方形で描く } //葉の部分を小さな正三角形をたくさん集めてできた大きな正三角形で描く void triangle(){ //小さな正三角形を描く int i; for(i=5; i>=1; i--){ fd(40*i); lt(120); //小さな正三角形の一辺をまとめて描く //正三角形の残りの二辺をまとめて描く int j; for(j=i; j>=1; j--){ fd(40); rt(60); //正三角形の一辺を描く bk(40); lt(60); //正三角形の残りの一辺を描く } rt(60); fd(40); rt(60); //後処理(次にまとめて正三角形の一辺を描くためにタートルの位置,角度を調整する) } rt(60); fd(120); lt(90); //後処理(幹の部分を描くためにタートルの位置,角度を調整) } //幹の部分を描く void miki(){ //正方形の各辺を描く int i; for(i=1; i<=4; i++){ fd(40); lt(90); //正方形の一辺を描く } rt(35); up(); fd(50); lt(35); down(); //後処理(次に鉢の部分を描くためにタートルの位置,角度を調整) } //煉瓦鉢を長方形と正方形で描くpotメソッドの定義 void pot(){ //煉瓦を二段に重ねる int h; for(h=1; h<=2; h++){ //長方形と正方形を交互に描く int i; for(i=1; i<=4; i++){ if(i%2==1){ //長方形の各辺を描く int j; for(j=1; j<=2; j++){ fd(15); lt(90); fd(35); lt(90); //長方形の一辺を描く } lt(90); fd(35); rt(90); //後処理(次に正方形を描くためにタートルの位置,角度を調整) } else{ //正方形の各辺を描く int k; for(k=1; k<=4; k++){ fd(15); lt(90); //正方形の一辺を描く } lt(90); fd(15); rt(90); //後処理(次に長方形を描くためタートルの位置,向きを調整) } } rt(180); bk(30); //後処理(煉瓦の二段目を描くためにタートルの位置,向きを調整) } } } /* 3 実現できたこととできなかったこと クリスマスツリーを描くこと自体には成功したと思います。ただ、図形をどう上手く使うかが問題で、難しかったです。 でもツリーの部分は、正三角形を使って上手くスムーズにプログラミング出来たと思います。煉瓦を表現するために 長方形と正方形を組み合わせたのも私なりに工夫できた点でした。 ただ、プログラミング中に、長くなったために自分が何をしたいのか、ソースをみてもわからなくなってしまったことが あったので、コメントを適時つけていこうと思います。クリスマスツリーのデコレーションが星だけなので、今後○の 描き方などを勉強してもう位置やってみたいと思います。 何度も復習してみましたが、いまいち部品とメソッドという定義のコメントの付け方がわかりませんでした。今回ソースに できるだけわかりやすく目的をコメントしたつもりですが、悪い点がありましたら教えてください。 以上です。 吉岡直美 */


> もとのページへ戻る