2013-04-18 3 views
-1

X, Y 좌표 및 높이/너비가있는 경우 PHP에서 두 사각형 사이에 겹치는 픽셀 수를 얻는 가장 짧은 방법은 무엇입니까? 이것은 if 문에 대한 버그가 많고 지저분한 콜렉션을 사용하고 있기 때문에 모범 사례 문제입니다.중복 픽셀 수 얻기 PHP

편집 : 이것은 내가 순간에 해결하기 위해 노력하고있는 무슨이다 :

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; 
} 
+11

는 문을, 우리는 당신이 그것을 imrovise 도움이 될 것입니다 경우의 버기 수집을 공유 할 수 있습니다. – DhruvPathak

답변

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

+0

bool 대신 픽셀 수를 얻으려고합니다. – user2288298

+0

'~'- '-', del '? 0 : 1', 중복 영역의 높이 및 너비입니다. –

+0

'echo overlapping (1,1,5,5,4,4,5,5); ($ x1, $ y1, $ w1, $ h1, $ x2, $ y2, $ w2, $ h2) { $ wover = abs ($ x1 + ($ w1/2) - ($ x2 + ($ w2)/2))) - ($ w1/2) + ($ w2/2); $ h1/2) + ($ h2/2); return $ hover; }'$ wover와 $ hover는 모두 3를 반환합니다. – user2288298