PHP,
pasted
on Mar 8:
|
function filter($init, $final, $center)
{
if((($final['a']['x']-$init['x'])($center['y']-$init['y'])-($final['a']['y'])($center['x']-$init['x'])))
return $final['a'];
else
return $final['b']
}
function getNextPoint($init, $center, $distance, $slope)
{
$final['a']['x'] = $init['x']+$distance/sqrt(1+$slope*$slope);
$final['a']['y'] = $init['y']+($slope*$distance)/sqrt(1+$slope*$slope);
$final['b']['x'] = $init['x']-$distance/sqrt(1+$slope*$slope);
$final['b']['y'] = $init['y']-($slope*$distance)/sqrt(1+$slope*$slope);
$point = filter($final, $center);
echo "X: $point['x'] Y:$point['Y']";
}
function polygon($vertices=5, $centerX=10, $centerY=10, $radius=5)
{
$internalangle = ($vertices-2)*180/$vertices;
$slope = tan($internalangle/2);
$init['x'] = 10;
$init['y'] = 10;
getNextPoint($init, $init, 5, $slope);
}
polygon();
|
Output:
|
function filter($init, $final, $center)
{
if((($final['a']['x']-$init['x'])($center['y']-$init['y'])-($final['a']['y'])($center['x']-$init['x'])))
return $final['a'];
else
return $final['b']
}
function getNextPoint($init, $center, $distance, $slope)
{
$final['a']['x'] = $init['x']+$distance/sqrt(1+$slope*$slope);
$final['a']['y'] = $init['y']+($slope*$distance)/sqrt(1+$slope*$slope);
$final['b']['x'] = $init['x']-$distance/sqrt(1+$slope*$slope);
$final['b']['y'] = $init['y']-($slope*$distance)/sqrt(1+$slope*$slope);
$point = filter($final, $center);
echo "X: $point['x'] Y:$point['Y']";
}
function polygon($vertices=5, $centerX=10, $centerY=10, $radius=5)
{
$internalangle = ($vertices-2)*180/$vertices;
$slope = tan($internalangle/2);
$init['x'] = 10;
$init['y'] = 10;
getNextPoint($init, $init, 5, $slope);
}
polygon();
|
|