[go: up one dir, main page]

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Cross sections #15

Open
JeffreyBenjaminBrown opened this issue Dec 13, 2023 · 1 comment
Open

[Feature] Cross sections #15

JeffreyBenjaminBrown opened this issue Dec 13, 2023 · 1 comment
Labels
enhancement New feature or request

Comments

@JeffreyBenjaminBrown
Copy link

The recipe

A procedure for defining a cross section that would work in all cases is:

If we're projecting from N to K dimensions (where N > K), and we want to define a cross-section, we must define K vectors in N-dimensional space that correspond to the axes in the K-dimensional viewing space, plus N-K vectors in N-dimensional space that correspond to the invisible (quotient) space, plus a single N-K-dimensional vector that defines our offset in the invisible quotient space. In doing this, the collection of N-dimensional vectors specified must all be linearly independent of each other -- that is, together they must span the entire N-dimensional space. (It would be nice if something made them orthogonal too, but meh.)

Why that works

Consider Mr. A Square, who lives in 2-dimensional Flatland, exploring a 3-dimensional elephant. The elephant won't move, so somehow he has to manipulate the plane he lives in so that it intersects the elephant in different places. He can define a cross section completely by specifying two 3d vectors (which define how the two basis vectors of Flatland map into 3-space), and by giving a scalar offset in the invisible-to-him 3rd dimension.

But that offset isn't really enough, because what does the offset mean? Even if we assume that it's a length in the invisible axis, and we define the invisible axis to be whatever is perpendicular to his visible 2d space, we need to know which direction it points. That is, even a perpendicularity restriction doesn't completely define the invisible vector that his offset is a coordinate in. We could introduce some kind of right-hand cross-product rule -- but even that only works if the invisible space is one-dimensional. The easiest solution, rather than to faff around with perpendicularity and cross-products, is to just have him specify the third axis.

So that's the easiest example. Consider now the hardest case that the program covers: Projecting from N=5 into 3 dimensions. To define a cross section, we need to define 3 5-dimensional vectors that span the cross-section (the "visible space"), 2 more 5-dimensional vectors to define the "invisible space", and a 2-dimensional vector to specify an offset in the invisible space. And the collection of 5-dimensional vectors specified has to be linearly independent.

@ndavd
Copy link
Owner
ndavd commented Dec 13, 2023

Thanks for the suggestion! It's possible but it would take a lot of work and perhaps some rewrites even. But I would like to have those eventually for sure.

@ndavd ndavd added the enhancement New feature or request label Dec 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants