wikipedia 黄金比
imagemagickのconvertコマンドを勉強していたのは、
画像を手動で画像ソフトから作成するのではなく、
美しい(大きさ、彩度、色彩)バランスを計算した上で
プログラムから出力したい、と考えたからです。
美しい数式、という言葉からまっさきに連想できるのが
自分の中では、「黄金比」でした。というわけで、
wikipediaで勉強
perlでやっつけスクリプトを書いてみた。
all=全体の長さを2分割したいときに指定
long=長辺の長さを指定
short=短辺の長さを指定
画像を手動で画像ソフトから作成するのではなく、
美しい(大きさ、彩度、色彩)バランスを計算した上で
プログラムから出力したい、と考えたからです。
美しい数式、という言葉からまっさきに連想できるのが
自分の中では、「黄金比」でした。というわけで、
wikipediaで勉強
黄金比(おうごんひ、En:Golden ratio, The Golden Mean/Rectangle)(=PHI)は、最も美しいとされる比。近似値は1:1.618、約5:8。線分を a, bの長さで 2 つに分割するときに、a : b = b : (a + b) が成り立つように分割したときの比 a : b のことである。今後、自動で画像作成しようとしたときに、よく使いそうな計算なので、
perlでやっつけスクリプトを書いてみた。
#!/usr/bin/perl起動時の引数に以下のように指定する
use strict;
use warnings;
use Data::Dumper;
use Getopt::Long;
sub golden_ratio { return (1.618, 1) } # FIXME:
GetOptions('-len=s' => \$::opts{length},
'-type=s' => \$::opts{type});
if($::opts{type} ne 'all' &&
$::opts{type} ne 'long' &&
$::opts{type} ne 'short'){
warn 'set type "all"';
$::opts{type} = 'all';
}
my ($l, $s) = golden_ratio();
if($::opts{type} eq 'all'){
print "all:\t". $::opts{length}. "\n";
print "long:\t". $::opts{length}*$l/($l+$s). "\n";
print "short:\t". $::opts{length}*$s/($l+$s). "\n";
}
elsif($::opts{type} eq 'long'){
print "all:\t". $::opts{length}*($l+$s)/$l. "\n";
print "long:\t". $::opts{length}. "\n";
print "short:\t". $::opts{length}*$s/$l. "\n";
}
elsif($::opts{type} eq 'short'){
print "all:\t". $::opts{length}*($l+$s)/$s. "\n";
print "long:\t". $::opts{length}*$l/$s. "\n";
print "short:\t". $::opts{length}. "\n";
}else{die}
$ ./calc_golden_ratio.pl --len=1000 --type=short--lenが計算のもとになる値、--typeがどこの長さかを指定する。
$ ./calc_golden_ratio.pl --len=1618 --type=long
$ ./calc_golden_ratio.pl --len=2618 --type=all
all=全体の長さを2分割したいときに指定
long=長辺の長さを指定
short=短辺の長さを指定