regebro / hovercraft

Make dynamic impressive presentations from text files!
https://hovercraft.readthedocs.org
MIT License
1.49k stars 208 forks source link

Relative coordinate system #141

Open jahs opened 7 years ago

jahs commented 7 years ago

Enjoying hovercraft - good work!

One thing that I think would be useful: a relative coordinate system (moving frame of reference) in addition to the current absolute frame of reference.

For example, if the usual slide transition is :data-x: r1000 (move camera right), then after a :data-rotate-z: r-90, we must switch to :data-y: r-1000 to get the camera to move right.

If we had a relative frame, then move right would always be, say, :data-rx: r1000.

Thanks!

regebro commented 7 years ago

Oh, you want data-left, data-right, data-up and data-down?

I guess that's technically doable, but it's going to get very confusing very fast when you do the layouts.

jahs commented 7 years ago

Yes and presumably -forward/-back for the relative z axis. I'm writing my first presentation in this at the moment and I thought it would be easier :) Perhaps it's the odd/old-fashioned way I'm using it: almost all just move right with a few transitions. One can have too much of a good thing.

The problem is that if I've written the presentation first, then put in the transitions, and amend one, the following ones need to be changed too.

I think it's easier as I only need to make a few simple decisions about where the "lines" of slides go (plenty of room in 3D space), and then not worry about them crossing.

Anyway, just an idea. Thanks very much, it's great to use rst for everything.

regebro commented 7 years ago

Yeah, if you do a lot of rotation that could be annoying, true.

vorpalvorpal commented 7 years ago

This is also on my list. It would allow for easy reuse and editing of presentations because a section could easily be taken from one context and put in another, while correctly preserving the positioning. Anyway, I plan on implementing the feature soon (once I finish documenting and debugging the local directives).