# Boost :

From: Valentin Samko (boost_at_[hidden])
Date: 2004-11-07 18:01:37

NS> I can only point you again to the PDF entitled "The Ambient Spaces of
NS> Computer Graphics and Geometric Modeling". It has a discussion of various
NS> coordinate spaces in which the difference between points and vectors are
NS> clearly discussed:
NS> Whether these spaces are "classical" mathematically or not is largely
NS> irrelevant. What is relevant is that these are the coordinate spaces used
NS> throughout the computer graphics literature.

I did read this paper and it looks like the author notes that R^n
spaces are not suitable for his theory (or it is easier to represent
his results using other spaces) and introduces other spaces relevant
for his research. Surely, some research in computer graphics may
involve/require introduction of new spaces, but I fail to see how
this relates to the choice of a space for basic operations used in
a GUI library (which in my opinion should only be R^n).

>> This makes them almost the same thing. You can treat vector as a
>> point, and point as a vector. Besides, we are talking about R^2,
>> which is a vector space.

NS> Sure, there's an isomorphism between points and vectors; however, that
NS> doesn't make them the same. There's an isomorphism between the functions
NS> f(x)=x and f(x)=2x; however, that does not make those two equations the
NS> same.

This is an entirely different case. These two functions are two
different elements in the same functional space (I assume, you defined
them in the same space).

NS> R^2 or R^3 is irrelevant.
agreed

NS> Maybe if we all just cared a little bit more about non-Euclidean spaces,
NS> this world would be a better place? :)

Good point, let's just not try to develop a gui library for a
functional space :)

NS> Yes, I'm fully saying that a point in R^2 is not a vector in R^2.
I disagree. If you treat R^2 as a vector space, any element in this
space is a vector. If you treat R^2 as an apple space, every element in
it is an apple. Are you saying, R^2 is not a vector space?

NS> Vectors
NS> do not translate. Points do. Even though both points and vectors may be
NS> represented as 2 numbers, you still need to differentiate the two;
NS> otherwise, you're significantly more likely to misuse them.

"otherwise, you're significantly more likely to misuse them." - true,
and that is why I mentioned type safety in my previous post.

NS> For example, say I have two points, p1 & p2, that undergo some
NS> transformation, T, that includes a translation, t.
What is a "translation" in this context?

NS> Type safety is important. I've argued for points precisely because there
NS> are major type safety issues involved because of the semantic differences.
NS> Most code out there doesn't make the distinction, and it causes problems.
Agreed.

NS> In math, I've always been taught that a vector "has direction and magnitude
NS> but no position".
This is very correct, until we stick to R^n, where vectors and points
happen to be same beasts.

NS> The CG literature I've read uniformly treated points and
NS> vectors as different beasts.
I am not a CG expert, so I do not know why this is so in CG
literature, probably this approach is more convenient to describe
some CG problems. I am only familiar with dimensionality reduction
aspects of CG, which treat points and vectors as the same beasts.

Valentin Samko
http://val.samko.info