# Boost :

From: Noah Stein (noah_at_[hidden])
Date: 2004-11-06 16:50:49

> -----Original Message-----
> From: boost-bounces_at_[hidden] [mailto:boost-bounces_at_[hidden]]
> On Behalf Of Val Samko
> Sent: Saturday, November 06, 2004 7:12 AM
> To: Reece Dunn
> Subject: Re[2]: [boost] Re: Re: GUI Library Proposal for a Proposal

> And vector in nD space is ... identifying a position in nD space. Just
> like a point. The difference is very vague and depends on the
> particular topic you are working on.

Point and vectors are two distinct elements. Both mathematics and computer
graphics consider them two different beasts. From Mathworld:

Mathematically speaking, a point in an n-space is a 0-dimensional entity.
No vector in n-space has ever been described as a 0-dimensional entity -
it's always of dimension n. Although both are identified by n coordinates,
they are clearly different beasts.

Although a point in 3D at (3,4,8) could be represented by the vector (3,4,8)
from the origin, this doesn't make the point and the vector the same thing.
In homogeneous coordinates, the two are not equal: (3,4,8,1) != (3,4,8,0).
Not only is there a semantic difference, but there's also a representational
difference, too. As such, they truly aren't the same thing.

> Once again, we are talking about Cartesian coordinates, and in this
> particular case, point and vector are practically the same thing. In many
> books/articles, etc. points are treated exactly the same as vectors.

In almost all of the computer graphics literature I have read, points and
vectors are not treated uniformly. Computer graphics uses a number of
spaces: affine, projective, and Grassmann. I suggest reading the following
brief introduction to the use of coordinate systems in computer graphics:

http://ibm.tju.edu.cn/resource/ComputerGraphicsApplication/ComputerGraphicsA
pplication/2000/g2/g2076.pdf

The author has a longer paper on the matter available to ACM members in the
organization's digital library in the Transactions on Graphics area.

> Now, there might be completely different reasons for treating points
> and sizes differently in a C++ program, and that would be the type
> safety. But if we go in this direction, we might as well introduce a
> type for velocity, to be able to do something like this:

That's a red herring.

-- Noah