研究開発

黄金四角形オブジェクト(2)

第2章 解説

このプログラムは2点型オブジェクトによる任意の長さを使って、黄金四角形を作るオブジェクトです。

パラメータのそれぞれの意味は以下のようになっています。
タイプで横長とした場合、長さを1.618...の側とします。
タイプで縦長とした場合、長さを1の側とします。
方向は四角形を、描いた線の右側に描くか左側に描くかを選びます。
角度は1点目のクリック位置と2点目のクリック位置の角度です。

長さはプログラム内では PLineLength を使います。
タイプはプログラム内では PDirection を使います。
方向はプログラム内では Pside を使います。

黄金比は 1 : (1+√5)/2 がもっとも美しいといわれているので
ここでは長さに対してもう一方の辺の長さをBoxWidthとして計算します。
タイプを横長とした場合に、BoxWidth = 長さ * 2 / ( 1 + √5 );
タイプを縦長とした場合に、BoxWidth = 長さ * ( 1 + √5 ) / 2;

{
名称 黄金四角形(goldenratio.vso)
2009年 6月 1日-1.0
著作・製作 エーアンドエー株式会社 研究開発室
}
PROCEDURE GoldenRatio;
VAR
	BoxWidth : REAL;
BEGIN
	IF PDirection = '横長' THEN
	BEGIN
		BoxWidth := PLineLength * 2 / ( 1 + Sqrt ( 5 ) );
	END
	ELSE
	BEGIN
		BoxWidth := PLineLength * ( 1 + Sqrt ( 5 ) ) / 2;
	END;

ここでは描く方向によってBoxWidthの値を±を反転させることで、描く方向を反転させます。

	IF PSide = '左' THEN
	BEGIN
		Rect ( 0, 0, PLineLength, BoxWidth );
	END
	ELSE
	BEGIN
		Rect ( 0, 0, PLineLength, -BoxWidth );
	END;
END;
Run( GoldenRatio );