The Routine (con't)
The drawing routine
This is the very core of the engine: the program that converts the 3D coordinates to 2D coordinates (as explained in The Math). In the fifth frame, draw, enter this:
Set Variable: "normalz" = depth * depthNormalz is the value k in the plane equation, depth being the z-coordinate of the normal vector of the view-plane (the plane being parallel to the xy plane, the vectors coordinates are (0,0,depth))
Set Variable: "n" = "1" Loop While (n<=totalpoints) Set Variable: "u" = (depth - eyez)/(eval("z"&n) - eyez) If (n<=9) Set Variable: "2Dx0"&n = u * eval("x"&n) + centerx Set Variable: "2Dy0"&n = u * eval("y"&n) + centery Else Set Variable: "2Dx"&n = u * eval("x"&n) + centerx Set Variable: "2Dy"&n = u * eval("y"&n) + centery End If Set Variable: "n" = n + 1 End LoopThis part is a bit more complicated. We actually convert the 3D coordinates to 2D coordinates. For each point, we first calculate the value u as explained in The Math. Then we recalculate the 2D coordinates by multiplying the 3d coordinates by u. I can't explain exactly what I've done here but if you study the math link I gave you should be able to understand it.
Set Variable: "n" = "1" Loop While (n<=totallines) Duplicate Movie Clip ("/baseline", "line" & n, n) Call ("drawline") Set Variable: "n" = n + 1 End LoopFinally we just draw the the lines by duplicating the basic movie clip and calling the drawline frame.
|» Level Advanced|
Rating: 9 Votes: 2631
|KStor is a student living in France and working with Flash during his free time...that is, not very much.|
|Download the files used in this tutorial.|
|Download (39 kb)|
|More help? Search our boards for quick answers!|