Quick Navigator

 Search Site Miscellaneous Server Agreement Year 2038 Credits

# Manual Reference Pages  -  MATH::GEOMETRY (3)

.ds Aq ’

### NAME

Math::Geometry - Geometry related functions

### SYNOPSIS

```

use Math::Geometry;

@P2=rotx(@P1,\$angle);
@P3=rotx(@P1,\$angle);
@N =triangle_normal(@P1,@P2,@P3);
@ZP=zplane_project(@P1,\$d);

```

### NOTES

This is about to get a massive overhaul, but first im adding tests, lots of lovely lovely tests.

Currently for zplane_project onto a plane with normal of the z axis and z=0, the function returns the orthographic projections as opposed to a perspective projection. I’m currently looking into how to properly handle z=0 and will update it shortly.

### DESCRIPTION

This package implements classic geometry methods. It should be considered alpha software and any feedback at all is greatly appreciated. The following methods are available:

#### vector_product.

Also known as the cross product, given two vectors in Geometry space, the vector_product of the two vectors, is a vector which is perpendicular to the plane of AB with length equal to the length of A multiplied by the length of B, multiplied by the sin of @, where @ is the angle between the two vectors.

#### triangle_normal

Given a triangle ABC that defines a plane P. This function will return a vector N, which is a normal to the plane P.

```

(\$Nx,\$Ny,\$Nz) =
triangle_normal((\$Ax,\$Ay,\$Az),(\$Bx,\$By,\$Bz),(\$Cx,\$Cy,\$Cz));

```

#### zplane_project

Project a point in Geometry space onto a plane with the z-axis as the normal, at a distance d from z=0.

```

(\$x2,\$y2,\$z2) = zplane_project (\$x1,\$y1,\$z1,\$d);

```

#### rotx

Rotate about the x axis r radians.

```

(\$x2,\$y2,\$z2) = rotx (\$x1,\$y1,\$z1,\$r);

```

#### roty

Rotate about the y axis r radians.

```

(\$x2,\$y2,\$z2) = roty (\$x1,\$y1,\$z1,\$r);

```

#### rotz

Rotate about the z axis r radians.

```

(\$x2,\$y2,\$z2) = rotz (\$x1,\$y1,\$z1,\$r);

```

Convert degree’s to radians.

Convert radians to degree’s.

#### pi

Returns an approximate value of Pi, the code has been cribed from Pg146, Programming Perl 2nd Ed.

### EXAMPLE

```

use Math::Geometry;

```

### AUTHOR

```

Greg McCarroll <greg@mccarroll.org.uk>
- http://www.mccarroll.org.uk/~gem/

```