A point vector is simply an object that points, from the origin to a specific location. We usually represent such an object with an arrow, with its tail at (0,0) or whatever, and its head at (x,y).
Rather that pursue Flatland geometry as an end in itself, we will start right away in spatial geometry, showing two classes of vector, one typical, the other somewhat exotic.
In :class Vector: "A point in space" pass
We're going to want to see our vectors rendered in some way. Visual Python, or VPython, provides an excellent solution. However, we're going to stay with still ray tracings in this Chapter and work with POV-Ray.
Our goal is to build up a data structure for representing a full-fledge polyhedron, a network of edges, connecting around in faces, floating about the origin. We'll use point vectors for the vertexes, pairs of vectors for the edges, and sets of three or more vectors for the faces. Indeed, given faces as clockwise or counterclockwise listings, we can "distill" the edges by going around each face and getting the vertex vector pairs.
In :class Edge: "A pair of vectors" pass class Face: "A set of vectors in clockwise or counter-clockwise order" pass class Polyhedron: "A set of faces" pass