¿Qué hay de malo con mi conversión de coordenadas XY Z a las coordenadas XY de pantalla?

Estoy trabajando en una demostración de Canvas HTML5 de esferas rebotando en el espacio 3D. Esto es muy sencillo de hacer. Cada bola tiene coordenadas X, Y y Z. Estas coordenadas se convierten luego en las coordenadas de pantalla X e Y que leo aquí.http://answers.google.com/answers/threadview/id/496030.html

La fórmula que obtuve del enlace anterior para convertir las coordenadas XY Z en X e Y es

screenX = (depth/(Z+depth)) * X
screenY = (depth/(Z+depth)) * Y

He puesto una demostración del código de trabajo en jsFiddle aquí.http://jsfiddle.net/xeMpv/

Pero algo está fuera de aquí.El resultado que obtengo se ve así.. ¿Puedes decirme qué estoy haciendo mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta