- casting.cpp: Sample program which shows how to cast Euclidean into projective points and vice-versa.
- segmentintersection-projective.cpp: Compute the potential intersection point of two line segments using the cross-product: cross-product for
defining supporting lines and cross-product of the line vectors for determining the intersection projective point
(require OpenGL(R)).
snapshot1 PNG
snapshot2 PNG
- PolygonTransform.cpp: 2D polygon transformations (rotations, symmetries, shears, etc.). Require OpenGL(R).
snapshot1 PNG
snapshot2 PNG
snapshot3 PNG
- 3dtransformations.cpp: 3D mesh transformations (rotations, symmetries, shears, etc.). Require OpenGL(R).
Require the Stanford bunny mesh in the include file bunny.h.
snapshot1 PNG
snapshot2 PNG
snapshot3 PNG

The 3D bunny model is courtesy of (c) The Stanford 3D scanning repository, Marc Levoy. - rotation-by-quaternion.cpp: Sample program that shows how to use quaternion arithmetic for performing rotations
around some given axis. Require OpenGL(R)
snapshot1 PNG
snapshot2 PNG
- isometricprojection.cpp: Choosing the view direction and hence the projection plane for getting an isometric projection of cube(s). Require OpenGL(R)
snapshot PNG
- openglviewport.cpp: Render several views onto a same device display using viewport mappings. Require OpenGL(R)
snapshot PNG
- Unperspective.cpp:
Rectify an input perspective image so that the planar surface (eg., sign, etc.) looks as if taken from front position.
You need the input image newcourt.ppm.
Result image is called unperspective-newcourt.ppm
- BlendHomography.cpp:
Match two perspective images by an homography related a common planar surface (book cover).
You need the input image bookcovers1.ppm and bookcovers2.ppm.
Result image is called blendhomography.ppm
- logpolartransform.cpp:
Log-polar transform on a source image.
You need the input image cambridge512.ppm.
Result image is called logpolar.ppm
- sphericalmapping.cpp:
Spherical mapping (theta-phi) of an image (with given field of view).
You need the input image normal120deg.ppm.
Result image is called sphericalimage.ppm
- lineconics.cpp:
An easy way to rasterize conics, line conics and dual conics.
Result image is called draw.ppm
- plucker.cpp:
A sample program using Plucker coordinates of lines to answer incidence or intersection test of lines.
Define the dot product of Plucker lines.
- radialdistortion.cpp:
A simple interactive interface for visualizing the radial distortion. Require OpenGL(R).
snapshot PNG
- checkerboard.cpp:
Create a checkerboard image, save this image into checkerboard.ppm and display a textured quad. Require OpenGL(R).
snapshot PNG
- spheremap.cpp:
Reflection mapping using a sphere map environment image and the Utah teapot. Require OpenGL(R).
You need this sphere map image: mirrorball512.ppm.
snapshot PNG
- latlong2spherical.cpp:
Environment map conversion procedure using generic pixel-to-ray and ray-to-pixel primitives.
You need this equirectangular environment map image: latlong.ppm.
The output is a spherical mirror ball image spherical.ppm that you can also use in the former
OpenGL(R) reflection mapping program.

Last updated, May 2005.