Well I'm not an experienced programmer, but I'm good with math and modeling.  So I'll leave the meat of the work to you, but if you want me to very equations or otherwise bounce stuff off me.  I'm here.

I was thinking that defining the canvas center as the origin and treating the box (with it's VPs) as a 3D vector rotation would be ideal.  This way you keep track of three ground coordinates, three rotation angles, and three distances to the VPs.

Also, I have a 2D matrix multiplication function from some years back.  It may be helpful.  Also, I have been working on a program to graph real and complex data overlaid together.  So there may be some stuff there we can use.  It includes classes for 2D graphing coordinates, a complex number class and operator overloads.

Maximilian Albert wrote:
Dave & Ann Marie Barry schrieb:

  
Excellent.  I guess I can start deriving equations and methods for 
implementing those actions and try them out.
    

That's what I was also planning to do in the next week or two.
Unfortunately, I will be really busy for the next few weeks due to
the completion of my Diplom thesis. But I'm sure I won't be able to
resist the temptation. :)

BTW, thanks for offering to help, Dave! Much appreciated. I must
confess, however, that figuring out the maths and writing the
fundamental classes is part of why this project fascinates me so much
(apart from the GUI aspect), so I'd really like to work on that, too.
But I reckon that there is enough to do for two people - just don't make
me redundant, please. ;) Furthermore, exchanging and discussing ideas
may be very helpful. The most important thing, though, is IMHO that the
design should be carefully adapted to the way we want the tool to
eventually work. I only made a few drafts in the last days, but I hit
upon a couple of points where I considered it worthwile to write a class
in a slightly different way than would be most suitable for, say, a
general purpose library. I think this can often facilitate interaction
with the GUI. I can say more about that as soon as I have the time to
really think about the class design in detail.

A general question: Just in case I should really be accepted to
work on this for SoC, to which extent is it 'legal' to work together
with other people? May that be a problem with the regulations?

Cheers,
Max