Lines and circles #121
Labels
No labels
bug
design
duplicate
engine
enhancement
maintenance
prospective
question
regression
stub
todo
ui
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: StudioInfinity/dyna3#121
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This issue is an expansion of the commentary in notes/inversive.md (our expository/explanatory text is sadly fragmented among notes files in the repo, the wiki of the repo, and issues in the repo) on lines and circles. From a design perspective, as soon as we want to allow the manipulation of lines and circles in dyna3, they will need representations. It seems at the moment we are leaning toward a sort of derived representation, i.e., that they are represented by some collection of our directly-representable entities, presumably with some automatic constraints between them.
Already in the notes file, we have some proposals:
In this comment, I want to think about another similar representation for lines. We represent a line by the perpendicular plane through the origin, and a plane containing the line that is perpendicular to the shortest segment from the origin to the line. Sadly, this is not uniquely determined for lines through the origin; perhaps there is a way to patch that up. For all other lines, the two planes are uniquely determined. Further, given two such planes, we know the line: if the containing plane goes through the origin, it is the line perpendicular to the perpendicular plane through the origin. If the containing plane does not, it is the line perpendicular to the perpendicular plane, through the point on the containing plane closest to the origin.
This representation sort of extends to circles, at least to some extent. Every circle has a perpendicular plane through the origin, but unfortunately this plane is not unique for circles whose axis goes through the origin. Its concentric containing circle is perpendicular to any such plane. However, it doesn't seem that you can recover the circle from a plane through the origin and its concentric containing sphere: there seem to be a family of great circles in that sphere perpendicular to the given plane, naturally parameterized by
[0, \tau/2).So not sure that this style of representation is going anywhere. I guess any circle or line E could be represented by a plane P through the origin perpendicular to E, a sphere or plane S containing E, and a point in the intersection of P, S, and E. With all that data, the circle or line can be recovered uniquely. But (a) that's a lot of entities, with a fair amount of redundancy, to represent a line or circle, and (b) for many lines and circles, the choice of P,S,E are far from unique.
So I guess the "ideal" representation of lines and circles remains elusive.
One other representation I will mention: a circle could be represented by a plane perpendicular to it through the origin, and the two points of intersection between the plane and circle (again, this representation is not unique for circles whose axis goes through the origin). This extends to line when the second point is allowed to go to infinity. But we're not really dealing with points at infinity directly in the current dyna3, even though they are admitted in the engine coordinates... This representation is was the source in my mind of the representation in the previous comment, in which I was just trying to get rid of the second point and the need for it to go to infinity by replacing it with a sph/ane.