研究開発

畳を敷く(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 );