Hello, all my web visitors! I present to you another one of my math programming adventures :-)
The top portion of this program is similar to my matrix calculator while the other three sections are:
2D vector calculator with graphing capabilities.
3D vector calculator with graphing capabilities.
3D matrix calculations that are often used in 3D game programming.
Here is a blog about some of the details in my reverse engineering effort of the JS 3D rotating cube. Using the basic code model of the rotating cube I was able to create the 3D graphing section of this program.
IMPORTANT for matrix calculations: If entering large numbers, especially numbers with many digits beyond the decimal point it would be best to use From A or From B. Then enter the numbers in the table structure and click To A or To B to continue with the calculations.
Enter required values or angles to create a 3D matrix in the text field at the bottom of this section. Note that n stands for a normal vector (length of 1) and will automatically be calculated when entering your vector. For example, if looking for rotation around an arbitrary axis (2, 3, 4), then just enter 2 for nx, 3 for ny, and 4 for nz, along with an angle value.
Note: make sure to select either Deg (degrees) or Rad (radians) for angle values. Otherwise, the default value is degrees.
Enter an angle (left-handed coordinate system).
3D Rotation about X Axis
3D Rotation about Y Axis
3D Rotation about Z Axis
3D Rotation about Arbitrary Axis
Enter a number to scale per axis (left-handed coordinate system) with k representing the scale amount per axis. For example scaling 2 times in x direction only would be kx = 2, ky = 0, and kz = 0.
Scaling along cardinal axes
Scaling in arbitrary direction
Click on a button to provide the needed projection matrix, and then click 'To B' to multiply by a 1x3, 2x3, or 3x3 matrix in A.
Projection onto xy plane
Projection onto xz plane
Projection onto yz plane
Projection onto an arbitrary plane (n is perpendicular to the plane).
Enter n (or just enter a vector) that is perpendicular to the reflection plane. A good means to find n is to calculate the cross product of two adjacent vectors on the reflection plane.
Reflection over a plane
Example: Suppose we have a 3D cube. Hxy indicates x, y coordinates are shifted at the corresponding s, t inputs. Then, if each point of the 3D cube is multiplied by this matrix, the z values will remain the same, but the x, y values will change, shearing the cube. If 0 is entered for either x or y (s or t) then the corresponding x or y values will not change.