部下の部屋を200万円かけて超オシャレに改造したら、とても喜んでくれました。
61793341579
1
こんにちは、エンジニアのひろゆきです。
最近では専らWordPressのカスタマイズをしている僕ですが、あるとき、「2つの四角形を比較して、どちらが横長か?」という判定処理を書く場面に出くわしました。
こんなん簡単やー、と思って力技でやろうとしたら、地味に時間を食ってしまいました。
というわけで今回は、heightとwidthを持ったAとBを渡して横長の方を返すという処理を書いてみました。
以下、ご覧ください。
今回使う計算式です。力技ではなく、計算式を使うことが重要ですね。
X=A高さ×B横幅÷A横幅
これで、XよりBの高さの値が大きければAのほうが横長、ということになります。
上記の計算式をもとに処理を書きました。aとbにはそれぞれheightとwidth、名前を設定します。
function get_oblong($a,$b){
$height1 = $a['height'];
$width1 = $a['width'];
$height2 = $b['height'];
$width2 = $b['width'];
$assumption = $width2*$height1/$width1;
if($assumption < $height2){
return $a;
}else{
return $b;
}
}
$a['height'] = 1; $a['width'] = 1; $a['name'] = 'A'; $b['height'] = 4; $b['width'] = 2; $b['name'] = 'B'; $ret = get_oblong($a,$b); var_dump($ret);
array(3) { ["height"]=> int(1) ["width"]=> int(1) ["name"]=> string(1) "A" }まとめ
いかがでしたでしょうか。
簡単な計算でしたが、学生のころを思い出しました…。
複雑なものはかなりしんどい(ライブラリがあれば使ったほうがいい)と思いますが、こうやって式をプログラムにするのは楽しいですね。それでは、また。
エンジニアのひろゆきや。大阪生まれの大阪育ち。LIGを代表するエンジニアになるため、頑張るで。ほんま、よろしくやで。
いつもLIGブログをご覧いただきありがとうございます。LIGの広報担当ヨシキです。Facebook、Twitter、メルマガを通じて、皆様と交流を深めていきたいと思います。 僕の発信する情報はLIGからの公式メッセージと思っていただいて結構です。「いいね!」を押すも良し、twitterをフォローするも良し。全ては皆様次第です。 なによりのおすすめはメールマガジンですので、お気軽に登録してくださいね!
饅頭が怖い……饅頭が怖い……。