1) I think there are something like 12 or 24 possible coordinate systems in 3D. We are simply using one of the more popular systems used in various 3D modeling applications and game engines, where Y represents vertical position and Z represents depth. Our intent wasn't showing the same graph at matching 2D and 3D positions and the 3D viewer gets its node coordinates from a completely different property, so you will have to copy your coordinates from 2D points to 3D points anyway - while doing that, just assign your 2D.Y to 3D.Z.
2 & 3) Z represents depth, with positive coordinates meaning deeper inside / further behind the screen if you look from the origin. If you run this code upon a button click with the cube coordinates from previous thread (all positive), you will see that the cube becomes larger since the camera moves towards it from its original negative Z position:
private void button1_Click(object sender, EventArgs e)
{
var p3 = diagramView3D.CameraPosition;
diagramView3D.CameraPosition = new Point3D(p3.X, p3.Y, p3.Z + 22);
diagramView3D.ResetProjection();
}
However as mentioned you will have to cull vertices that are behind the camera, or you get strange results. The projection math still works for them, but they will be drawn flipped and start to look smaller once the camera passes them by (e.g. try clicking the button with handler shown above until the cube gets behind to see the effect).
The viewer from viewer distance is what corresponds to the eye in this image, while the camera corresponds to the projection plane:
http://en.wikipedia.org/wiki/3d_projection#DiagramI hope that helps,
Stoyan