
Boost : 
From: Noah Stein (noah_at_[hidden])
Date: 20041106 16:50:49
> Original Message
> From: boostbounces_at_[hidden] [mailto:boostbounces_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:
http://mathworld.wolfram.com/Point.html
http://mathworld.wolfram.com/VectorSpace.html
Mathematically speaking, a point in an nspace is a 0dimensional entity.
No vector in nspace has ever been described as a 0dimensional 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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk