[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Proposal for the geometric engine, RFC
On Wed, Mar 15, 2000 at 10:55:34AM +0800, Hilaire Fernandes wrote:
> Sorry, i don't know anything about that. I rather think point and line
> are quite different with one a subset of the other.
I'm not sure it's relevant to Dr Genius any more than what I mentioned
below, but it's well worth learning about. I recommend Coxeter's
"Projective Geometry". Also see below, or look up
http://mathworld.wolfram.com/ProjectiveGeometry.html.
> In actual implementation, curves, in some situation, already have one
> degree of freedom.
Which situations?
> > Another hard request for the geometric engine: can you add ideal
> > points at infinity?
> Can you tell me more on this topic ?
Sure. If you think about points and lines in terms of axioms, there
are some inconsistencies: every pair of points determines a line, and
almost every pair of lines determines a point. The exception is
parallel lines, which do not intersect. Ideal points remedy this
situation; you add a point formally at the intersection of two
parallel lines. All lines through this point will be parallel. If
you took points very far out in the plane, then lines through them
would get closer and closer to parallel, so you can think of an ideal
point as a point infinitely far away; but note that ideal points in
opposite directions are "the same point".
Once you add these extra points and forget about drawing circles and
drawing segments (as opposed to lines), it turns out that the axioms
nof geometry are entirely dual: you can exchange points and lines
without changing anything.
I could go on and make that more explicit, but I'm getting tired right
now.
In practical terms, I've only thought a little about the user
interface. The typical notation for points at infinity is to draw a
little arrow out by the edge of the diagram labelled by the name of
the point; maybe you could adopt this, reserving some space around the
edge of the diagram for infinite points (if some appropriate
preference is set??)
> > When you get to working on the UI some more, it would be really
> > nice to be able to make construction lines that can be hid and
> > shown easily. I don't know how to do this other than turning the
> > construction lines white. A good UI for this is to use drawing
> > layers.
>
> This is implemented already, set the line style to the dot one (the
> first one in style dialog). Anyway the mechanism doesn't look very
> clear, this will eb changed a bit.
I don't think you understood; I want to be able to have construction
lines, hide them all to show the finished drawing, then restore them
if I want to change something.
Most drawing programs (e.g., gimp) have a notion of layers: you can
draw in several different drawing layers, which can be shown or hid or
reordered independently. I think this would work well here.
> > This feature would allow drawing three dimensional pictures very
> > easily, which would be quite nice.
>
> Hum, this make me things that circle could be turned in ellipse when
> going frrom an orthogonal reference frame to a non orthogonal
> reference frame.
Right, that's true.
> > There are several ideas here, some of them probably silly. I'm
> > happy to explain them more and think about implementation more
> > seriously.
>
> Go on, this is now or never :)
Well, since you seem to like wild ideas...
It would be utterly fantastic if you could implement non-Euclidean
(hyperbolic and spherical) geometries in addition to Euclidean
geometry. I've been getting very excited about this as I think about
it; it's non-trivial, but would be very cool. I'd be delighted to
help with the math, programming, or in whatever other way I could.
This is something I've wanted for years but never realized...
I've occasionally changed my mind about a point and wanted to switch
it from, for instance, being a free point to being constrained to lie
on a line. Sometimes this happens after I've done a complicated
construction. It would be nice to be able to do this, but it might be
more trouble than it's worth.
Finally, have you thought about including any two-dimensional objects
(triangle, polygon, interior of circle, ...) so we can, e.g., measure
areas?
Best,
Dylan Thurston