[Edu-sig] python satacad: class 6

Arthur ajsiegel at optonline.net
Sun Feb 20 15:45:51 CET 2005

> From: Kirby Urner [mailto:urnerk at qwest.net]
> > From: Arthur [mailto:ajsiegel at optonline.net]

> > And what Klein prescribes in the end sounds much like a primer on the
> > underlying mathematics and ideas which we now know as the fundamentals
> of
> > computer vector graphics.  Except that we tend to know these ideas, and
> > teach them, out of the their historical and intellectual context.
> Yeah, I wondered if you were referring to Quaternions and see from your
> concluding quote that you were.

A good deal more to it than that. I am presenting Klein's ideas, not my own.
So I will indulge myself by allowing myself some long quotes from the
introduction to Volume II of his lectures at a summer teachers' colloquium,
on Geometry - as I am not aware of this material up anywhere on the Web.

...I shall draw attention more than is usually done to the historical
development of the science, to the accomplishments of the great pioneers. I
hope, by discussions of this sort, to further, as I like to say, your
general mathematical culture: alongside of knowledge of details, as these
are supplied by the special lectures, there should be a grasp of the
subject-matter and of historical relationship

While Klein's ideas, they are ideas to which I prescribe.  And I am
proposing Klein himself, now, as such a pioneer.  And noticing the vacuum of
historical context that seems to prevail when approaching a subject like
computer graphics and its mathematical underpinnings.  To some of us, that
historical context is perhaps its most engaging aspect. And while I am not
asking that those of us with such a sensibility be allowed to dominate the
proceedings, allowing this sensibility a sense of inclusion in those
proceedings would seem to be to everyone's benefit.

More Klein --

I advocate here, as always in such general lectures, a tendency which I like
best to designate by the phrase 'fusion of arithmetic and geometry' -
meaning by arithmetic, as is usual in the schools, the field which includes
not merely the theory of integers, but also the whole of algebra and

Klein is advocating this a half century before the developments that brought
us the computer screen.  The ability now to actualize and enliven - "not be
dull" - this approach having been enhanced dramatically by these
developments.  And other than some pockets of practice in some Saturday
academies ;) , largely ignored -  as far as I can tell.

More Klein -

It has long been the custom in the schools as well as the university, first
to study the plane and them, entirely separated from it, the geometry of
space. On this account space perception, which we possess originally, is
stunted. In contrast to this the 'fusionists' wish to treat the plane and
space together, in order not to restrict our thinking artificially to two

Bucky and Klein seem to be on the same page, here.

More Klein - 

Last semester I endeavored always to enliven the abstract discussions of
arithmetic, algebra, and analysis by means of figures and graphic methods,
which bring the things nearer to the individual and often make clear to him,
for the first time, why he should be interested in them.  Similarly I shall
now, from the beginning, accompany space perception, which of course, will
hold first place, with analytic formulas, which facilitate in the highest
degree the precise formulation of geometric facts.

IOW, the pictures aren't effective without the analytics, and vice versa.
What this means to me, among other things, is "code as text".  Something
like PyGeo, for example, is - IMO - *only* interesting as an Open Source
project, with the underlying analytics exposed. 

I could actually gone on a bit more, but this is getting out of hand in
terms of length....



> As it happens, the "more fully developed vector class" I was describing is
> pretentious in just this way:  if you multiply by a scalar, the vector
> elongates or shrinks, like any good little vector.  But if you try to
> multiply by another vector, well then, both suddenly become quaternions at
> that point -- though the result is returned as a vector.
>     def __mul__(self, other):
>         """
>         Might be just scalar multiplication, but if the arg is another
>         vector, let's go through the motions of quaternion * quaternion
>         """
>         if type(other) == type(self):  # treat mul as quaternion mul
>            # (v1 x v2) + (s1*v2) + (s2*v1)
>            newv = self.cross(other) + (self.s * other) + (other.s * self)
>            # s1*s2 - v1.v2 where s1 is self.s, v1 is self.v
>            newv.s = (self.s * other.s) - self.dot(other)
>            return newv
>         if type(other) in [type(1.0), type(1)]: # or do scalar mul
>             return Vector3d(self.x * other, self.y * other, self.z *
> other)
>     __rmul__ = __mul__
> http://www.4dsolutions.net/satacad/pytools/  -- see vector.py
> But I didn't get into this at all with the kids today.
> There's some excellent book on the history of vectors, one of those Dover
> books -- talks about how the Gibbs-Heaviside approach gradually took hold
> and that's what we generally taught in the 1900s.  But computer gaming
> helped quaternions make a come back.  I used to post about this stuff
> quite
> a bit -- buried in the Math Forum archives probably.
> Yeah, here's the book, listed in the bibliography on that Quaternions page
> at MathWorld:
> http://www.amazon.com/exec/obidos/tg/detail/-/0486679101/
> Kirby

More information about the Edu-sig mailing list