All pastes #330626 Raw Edit

Mine

public text v1 · immutable
#330626 ·published 2007-01-28 02:26 UTC
rendered paste body
<?php

function circlePoints($cx, $cy, $x, $y)
{
	if ($x == 0) {
		$points[] = array($cx, $cy + $y);
		$points[] = array($cx, $cy - $y);
		$points[] = array($cx + $y, $cy);
		$points[] = array($cx - $y, $cy);
	} else
	if ($x == $y) {
		$points[] = array( $cx + $x, $cy + $y);
		$points[] = array( $cx - $x, $cy + $y);
		$points[] = array( $cx + $x, $cy - $y);
		$points[] = array( $cx - $x, $cy - $y);
	} else
	if ($x < $y) {
		$points[] = array( $cx + $x, $cy + $y);
		$points[] = array( $cx - $x, $cy + $y);
		$points[] = array( $cx + $x, $cy - $y);
		$points[] = array( $cx - $x, $cy - $y);
		$points[] = array( $cx + $y, $cy + $x);
		$points[] = array( $cx - $y, $cy + $x);
		$points[] = array( $cx + $y, $cy - $x);
		$points[] = array( $cx - $y, $cy - $x);
	}
	return $points;
}

function circleMidpoint($xCenter, $yCenter, $radius)
{
	$x = 0;
	$y = $radius;
	$p = (5 - $radius*4)/4;

	$points = circlePoints($xCenter, $yCenter, $x, $y);
	while ($x < $y) {
		$x++;
		if ($p < 0) {
			$p += 2*$x+1;
		} else {
			$y--;
			$p += 2*($x-$y)+1;
		}
		array_merge($points,circlePoints($xCenter, $yCenter, $x, $y));
	}
	return $points;
}

?>