[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Proposal for the geometric engine, RFC
> > of this object and variant representation (ex: a line can be
> > defined by two points, a point and a line (parallel or
> > perpendicular) can be represented by this classes, ...
>
> I don't know anything about the internals of Dr Genius, but why the
> asymmetry in these two cases? Mathematically, points and lines in
> the plane have almost the same structure, so, for instance, a point
> defined by the intersection of two lines is dual to a line defined
> by two points, and a point on a curve is dual to a tangent to the
> curve. This is called projective duality.
Sorry, i don't know anything about that. I rather think point and line
are quite different with one a subset of the other.
> Hmm. I suppose it's a user interface reason. It's easy to specify
> a free point with the mouse, and harder to specify a free line. I
Well, when you specify a free line you always specify two points even
if none is showed, at least one is internally constructed.
This is doable
> would like to see this duality reflected more in the interface,
> though, I think it should be doable. If I want to draw an
> arbitrary line through a point, I currently have to pick another
> point arbitrarily and draw the line passing through the two points;
> why should I have to specify the second point?
I will think about this feature.
>
> Here's another way of saying what I want: currently, points can
> have 0 [intersection], 1 [on curve], or 2 [free] degrees of
> freedom, while all curves/lines have 0 degrees of freedom. Why not
> have lines with 1 degree of freedom (such as: passing through a
> given point; tangent to a given circle/geometric locus; parallel to
> a given line)? 2 degrees of freedom would also be nice if there
> were a good interface, but I can't think of one off the top of my
> head.
In actual implementation, curves, in some situation, already have one
degree of freedom.
> Another hard request for the geometric engine: can you add ideal
> points at infinity?
Can you tell me more on this topic ?
> 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.
> > 3. Each geometric object depends on a coordinate referential, so
> > 3. the
> > object coordinate are relative to one referential. This allows
> > teaching this topic. Technically this mean the geomtricObject
> > contained a reference to a coordinate referential. There is a
> > mechanism to change the referential attached to one obcjet
>
> What is the base reference frame defined with respect to?
Not sure to undersdand you. The default reference frame is the world
one.
> When you change the reference frame of an object, does the object
> move or not?
Both should be doeable. Basicly the object coordinate are relative to
one reference frame, so when we change the reference frame of an object we can :
. keep the same relative coordinate, so the point will move on the screen
. recompute the relative coordinate, so the point will not move on the screen.
> 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.
> Another thing to think about when working on the geometric engine
> is what varies when you move a constructed object. It would be
> nice to be able to pin down some of the objects so that they don't
I will take this on consideration.
> 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 :)
Hilaire