畳を敷く(3)
オブジェクト機能をつかって生きた畳ツールを作ってみましょう。
第3章 他のバリエーションも描いてみる
4畳半だけではおもしろくないので、六畳を描いてみます。
長方形が6つで描くことができます。同じように一辺の長さをパラメータとして座標を拾いましょう。
柱状体までいっきに持っていきます。
PROCEDURE tatami6; CONST pTSize = 880.0; pTAtumi = 60.0; BEGIN BeginXtrd( 0, pTAtumi ); Rect( 0.0, 0.0, pTSize, pTSize*2 ); Rect( pTSize, 0.0, pTSize*3, pTSize ); Rect( pTSize, pTSize, pTSize*3, pTSize*2 ); Rect( pTSize*3, 0.0, pTSize*4, pTSize*2 ); Rect( 0.0, pTSize*2, pTSize*2, pTSize*3 ); Rect( pTSize*2, pTSize*2, pTSize*4, pTSize*3 ); EndXtrd; END; Run( tatami6 );
さらに、8畳、10畳、12畳とがんばってみてください。
PROCEDURE tatami8; CONST pTSize = 880.0; pTAtumi = 60.0; BEGIN BeginXtrd( 0, pTAtumi ); Rect( 0.0, 0.0, pTSize*2, pTSize ); Rect( pTSize*2, 0.0, pTSize*4, pTSize ); Rect( 0.0, pTSize, pTSize, pTSize*3 ); Rect( pTSize, pTSize, pTSize*3, pTSize*2 ); Rect( pTSize, pTSize*2, pTSize*3, pTSize*3 ); Rect( pTSize*3, pTSize, pTSize*4, pTSize*3 ); Rect( 0.0, pTSize*3, pTSize*2, pTSize*4 ); Rect( pTSize*2, pTSize*3, pTSize*4, pTSize*4 ); EndXtrd; END; Run( tatami8 );
PROCEDURE tatami10; CONST pTSize = 880.0; pTAtumi = 60.0; BEGIN BeginXtrd( 0, pTAtumi ); Rect( 0.0, 0.0, pTSize, pTSize*2 ); Rect( 0.0, pTSize*2, pTSize, pTSize*4 ); Rect( pTSize, 0.0, pTSize*3, pTSize ); Rect( pTSize*3, 0.0, pTSize*5, pTSize ); Rect( pTSize, pTSize, pTSize*2, pTSize*3 ); Rect( pTSize*2, pTSize, pTSize*4, pTSize*2 ); Rect( pTSize*2, pTSize*2, pTSize*4, pTSize*3 ); Rect( pTSize*4, pTSize, pTSize*5, pTSize*3 ); Rect( pTSize, pTSize*3, pTSize*3, pTSize*4 ); Rect( pTSize*3, pTSize*3, pTSize*5, pTSize*4 ); EndXtrd; END; Run( tatami10 );
PROCEDURE tatami12; CONST pTSize = 880.0; pTAtumi = 60.0; BEGIN BeginXtrd( 0, pTAtumi ); Rect( 0.0, 0.0, pTSize, pTSize*2 ); Rect( 0.0, pTSize*2, pTSize, pTSize*4 ); Rect( pTSize, 0.0, pTSize*3, pTSize ); Rect( pTSize*3, 0.0, pTSize*5, pTSize ); Rect( pTSize, pTSize, pTSize*2, pTSize*3 ); Rect( pTSize*2, pTSize, pTSize*4, pTSize*2 ); Rect( pTSize*2, pTSize*2, pTSize*4, pTSize*3 ); Rect( pTSize*4, pTSize, pTSize*5, pTSize*3 ); Rect( pTSize, pTSize*3, pTSize*3, pTSize*4 ); Rect( pTSize*3, pTSize*3, pTSize*5, pTSize*4 ); Rect( pTSize*5, 0.0, pTSize*6, pTSize*2 ); Rect( pTSize*5, pTSize*2, pTSize*6, pTSize*4 ); EndXtrd; END; Run( tatami12 );