-1

X、Y座標と高さ/幅がある場合、PHPで2つの長方形の間で重なり合うピクセルの数を取得する最短の方法は何ですか? 私は現在、ifステートメントのバグのある/乱雑なコレクションでこれを行っているため、これは少しベストプラクティスの質問です。

編集:これは私が現在修正しようとしているものです:

echo overlapping(1,1,5,5,4,4,6,6).PHP_EOL;
echo overlapping(0,0,29,21,30,20,40,50).PHP_EOL;
function overlapping($x1,$y1,$w1,$h1,$x2,$y2,$w2,$h2){
$wover = abs($x1+($w1/2)  - ($x2+($w2/2))) - ($w1/2)+ ($w2/2);
$hover = abs($y1+($h1/2)  - ($y2+($h2/2))) - ($h1/2)+ ($h2/2);
return $wover*$hover;
}
4

1 に答える 1

0
echo overlapping(0,-1,10,20,30,20,40,50);

function overlapping($x1,$y1,$w1,$h1,$x2,$y2,$w2,$h2){

$wover = abs($x1+($w1/2)  - ($x2+($w2/2))) > ($w1/2)+ ($w2/2)?0:1;

$hover = abs($y1+($h1/2)  - ($y2+($h2/2))) > ($h1/2)+ ($h2/2)?0:1;

if($hover && $wover ){
return 'over';

}
return 'not';

}

http://sandbox.onlinephpfunctions.com/code/1ea506fd72f827965d7241d520789a833b34dff5

于 2013-04-18T10:42:32.003 に答える