Calculation in the Utils3D.projectVectors() method
The Utils3D.projectVectors() method projects a Vector of three-dimensional space coordinates to a Vector of two-dimensional space coordinates. And the method also sets the t value of the uvt data.

Values for the calculation in the Utils3D.projectVectors() method
The Utils3D.projectVectors() method calculates t value of the uvt data by the following formula:
t value = 1 / (Distance to the origin + z coordinate value)
Also, the method calculates projected x and y values by the following formula:
Projected x or y value = Three-dimensional space x or y coordinate * Focal length * t value
The frame action below compares the results of calculation by the formulas above with the methods’. And [Output] is as follows:
0,0,0.0004 // uvt data
0.0004 // Calculated t value
20,20 // Projected x and y coordinates
20 // Calculated two-dimensional space x or y coordinate
var myPerspective:PerspectiveProjection = new PerspectiveProjection(); var myMatrix3D:Matrix3D = new Matrix3D(); var nDistance:Number = 1000; // Distance to the origin var nX:Number = 100; // Three-dimensional space x or y coordinate var nZ:Number = 1500; // Three-dimensional z coordinate var vertices3D:Vector.<Number> = Vector.<Number>([nX, nX, nZ]); var vertices2D:Vector.<Number> = new Vector.<Number>(); var uvtData:Vector.<Number> = Vector.<Number>([0, 0, 0]); var nT:Number = 1/(nDistance + nZ); // t value myPerspective.focalLength = 500; // Focal length myMatrix3D.appendTranslation(0, 0, nDistance); myMatrix3D.append(myPerspective.toMatrix3D()); Utils3D.projectVectors(myMatrix3D, vertices3D, vertices2D, uvtData); trace(uvtData); // uvt data trace(nT); // Calculated t value trace(vertices2D); // Projected x and y coordinates trace(nX * myPerspective.focalLength * nT); // Calculated two-dimensional space x or y coordinate
3 Comments
I’ve noticed one problem with this method…
If you want to change the PerspectiveProjection’s projectionCenter it has no effect on your calculations.
Thank you for your comment, Mikko. I just supposed the calculations in the Flash Player. If the result between the player and my formula is not the same, show some sample please.
Hi Jonas Lamere here, I’d been looking for information on JActionScripters » Blog Archive » Calculation in the Utils3D.projectVectors() method on the internet. So blessed to have reach http://blog.jactionscripters.com/2010/02/01/calculation-in-the-utils3d-projectvectors-method to learn about this info. Ended up saving me lots of time, thankyou.