rendered paste body<?
#c = array (
# array(44368,107440,-2032),
# array(46080,108968,-2032),
# array(44400,110644,-2032),
# array(42988,109652,-2032),
# array(43004,108928,-2032)
#);
$c = array (
array(150694,114119,-5519),
array(151755,114876,-5519),
array(151878,115383,-5519),
array(151158,115993,-5519),
array(150340,116049,-5519),
array(149924,115430,-5519),
array(149834,114597,-5519),
array(150161,114144,-5519)
);
function isInTriangle($xa,$ya,$xb,$yb,$xc,$yc,$xd,$yd) {
$delta_ab=($xa-$xb)^2+($ya-$yb)^2;
$delta_ac=($xa-$xc)^2+($ya-$yc)^2;
$delta_bc=($xb-$xc)^2+($yb-$yc)^2;
$delta_ad=($xa-$xd)^2+($ya-$yd)^2;
$delta_bd=($xb-$xd)^2+($yb-$yd)^2;
$delta_cd=($xc-$xd)^2+($yc-$yd)^2;
if ($delta_ac+$delta_bc<$delta_ad+$delta_bd) return 0;
if ($delta_bc+$delta_ab<$delta_ad+$delta_cd) return 0;
if ($delta_ab+$delta_ac<$delta_bd+$delta_cd) return 0;
return 1;
}
$xx = array();
$xy = array();
for ($i=0; $i<count($c); $i++) {
$xx[]=$c[$i][0];
$xy[]=$c[$i][1];
};
sort($xx);
sort($xy);
$minx=$xx[0];
$maxx=$xx[count($xx)-1];
$miny=$xy[0];
$maxy=$xy[count($xy)-1];
$im = @imagecreate(2000,2000) or die("error");;
echo "test";
$black = imagecolorallocate($im, 0,0,0);
imagefill($im,0,0,$black);
$red = imagecolorallocate($im, 255,0,0);
$x=$c[0][0]; $y=$c[0][1];
for ($i=1; $i<count($c)-1; $i++) {
imageline($im,$x/100,$y/100,$c[$i][0]/100,$c[$i][1]/100,$red);
$x=$c[$i][0]; $y=$c[$i][1];
};
imageline($im,$x/100,$y/100,$c[0][0]/100,$c[0][1]/100,$red);
imagepng($im,"test.png");
$i=0; $j=0;
// how many points to generate
$N=5;
//x from min X to max X
for ($x=$minx; $x<$maxx and $i<=$N; $x=$x+200) {
//y from min Y to max Y
for ($y=$miny; $y<$maxy and $i<=$N; $y=$y+200) {
$j=$j+1;
$b=0;
for ($a=1; $a<count($c)-2; $a++)
$b=$b+isInTriangle($c[0][0],$c[0][1],
$c[$a][0],$c[$a][1],
$c[$a+1][0],$c[$a+1][1],
$x,$y);
if ($b>0) {
echo "valid coords: $x,$y,".$c[0][2]."\n";
$i=$i+1;
};
};
};
echo "$i $j";
?>