effettivamente l'intercetta nn veniva usata...prova a guardare se così ti piace di più:
codice:
class coordinate {

	var $tempo = "";
	
	function coordinate($x1,$y1,$x2,$y2){
		$this->x1=$x1;
		$this->x2=$x2;
		$this->y1=$y1;
		$this->y2=$y2;
		$this->m=($this->y2-$this->y1)/($this->x2-$this->x1);
		$this->d=sqrt(pow(($this->x2-$this->x1),2)+pow(($this->y2-$this->y1),2));
	}

	function parziali($tm){
		$dm=$tm*$this->d/$this->tempo;
		$xm=$dm*cos(atan($this->m))+$this->x1;
		$ym=$dm*sin(atan($this->m))+$this->y1;
		return array($xm,$ym);
	}

}
$coordinate=new coordinate(5,5,20,20);
$coordinate->tempo=180;
for ($i=0;$i<180;$i=$i+10){
	list($xm,$ym) = $coordinate->parziali($i);
	echo "Xm $xm - Ym $ym
";
}