Popup Book – Mathematical Solution

If you have seen the Popup Book tutorial for Cinema 4D by Robert Leger and want to know how to solve the problem in the mathematical way read below.
Here is the Robert’s tutorial:

This is my result obtained with my solution:

I know that the following symbolism is not simple to read because I chose one that is ready to be transferred to COFFEE code and simple to write in this blog.
First of all, I want to fix my axes to take advantage of symmetry.


The origin is fixed on the point O. When the book is closing the two pages rotate together alpha degrees. I choose alpha as variable for the animation.
Now I want to have free choose of points: A and B.
The point A’ is symmetric respect to the ZY-plane by point A.
The point B stays on the plane x=0.
Now, with the book opened (alpha=0), I set the point A and B that I call _A and _B. In this manner I have set the distances OA,OB,AB that must be the same at any angle.
Generalizing a point P is defined through its variables as P (x, z, y) so:

A(alpha=0)=_A=(X_A, Z_A, 0)
B(alpha=0)=_B=(0, Z_B, Y_B)

It is obvious that Y_A=X_B=0

Then X_A, Z_A, Z_B, Y_B are all set.

I’m searching a solution for points A and B:
A=A(alpha)=(XA,,ZA,YA)=(X_A*cos(alpha), Z_A, X_A*sin(alpha))
A is solved. Note that XA^2+YA^2=X_A^2
B=(0, ZB, YB)

Now I’m searching a solution for B.

The equations:

1) The point B describes an arc of a circle with radius R equal to length OB.
ZB^2+YB^2=R^2 (note that also R^2=Z_B^2+Y_B^2)

2) The distance AB= constant
at any alpha:
AB^2=(XA-XB)^2+(ZA-ZB)^2+(YA-YB)^2
at alpha=0:
AB^2=(X_A-X_B)^2+(Z_A-Z_B)^2+(Y_A-Y_B)^2
=>
(remember that Y_A=X_B=0)
XA^2+(Z_A-ZB)^2+(YA-YB)^2=X_A^2+(Z_A-Z_B)^2+Y_B^2
XA^2+Z_A^2-2*Z_A*ZB+ZB^2+YA^2-2*YA*YB+YB^2=X_A^2+Z_A^2-2*Z_A*Z_B+Z_B^2+Y_B^2
after some steps, I found:
YA*YB+Z_A*ZB=Z_A*Z_B
For YA=0 (that is the same condition alpha=0) we have ZB=Z_B that is the correct value.
When alpha is fixed (YA fixed) this is an equation of a line (r). For YA>0:
YB=(Z_A*Z_B-Z_A*ZB)/YA

The intersection of the two equations gives two solutions. I”ll choose the solution with YB>0.

Now let’s go on with the calculations.
For semplicity: K=Z_A*Z_B
Intersect of:
1) YA*YB+Z_A*ZB=K => ZB=(K-YA*YB)/Z_A
2) ZB^2+YB^2=R^2

Raplacing ZB of equation 1) in equation 2):
(K-YA*YB)/Z_A+YB^2=R^2 =>
(YA^2+Z_A^2)*YB^2-2*K*YA*YB+(K^2-R^2*Z_A^2)=0 quadratic equation

The positive solution is:

YB=[K*YA+Z_A*sqrt(YA^2*R^2+Z_A^2*R^2-K^2)]/(YA^2+Z_A^2)
Now I can Calculate ZB:
ZB=(K-YA*YB)/Z_A

The problem is solved!

Now I can write a COFFEE node for the algorithm:

main()
{
var Z_B,Y_B,X_A,Z_A,Z_B2,Y_B2,Z_A2,YA2,alpha,K,K2,R2;

X_A=Input1;
Z_A=Input2;
Z_B=Input3;
Y_B=Input4;
alpha=Input5;

Z_A2=Z_A*Z_A;
Z_B2=Z_B*Z_B;
Y_B2=Y_B*Y_B;
YA=X_A*sin(alpha);
YA2=YA*YA;
XA=X_A*cos(alpha);

R2=Z_B2+Y_B2;
K=Z_A*Z_B;
K2=K*K;
YB=(K*YA+Z_A*sqrt(YA2*R2+Z_A2*R2-K2))/(YA2+Z_A2);
ZB=(K-YA*YB)/Z_A;
}

I hope this tutorial can be useful also just like a mathematic exercise.

Contact  me if you want the project file.

14 thoughts on “Popup Book – Mathematical Solution

  1. Tracey

    Hi Giannni, I think you might have melted my brain but thank you. This has come at just the right time for a project I am working on, but I need to turn on to the next page which also needs to be a popup, is there a way of duplicating the pages and then driving the close with the opening of the new page. Forgive me I am still finding my way with all this. Any help or advice would be gratefully received. thank you T ;)

    Reply
    1. Gianni Lorusso Post author

      Hi Tracey,
      I’m glad for your words.
      I think that all is possible… but it also true that sometimes we don’t see the way, impossible to see. :-D
      However I think that I can add an Xpresso slider for right page control. I’m going to manage the project file in the next 1-2 days. At that point I think that add a few pairs of pages is possible and also driving the close with the next opening.

      Reply
  2. Pingback: Behind Dog Chow Ad | N11

    1. Gianni Lorusso Post author

      Hi Bruno,
      I know that, l need to modify the article.
      In any case, as I said above I’m sending the file to everyone that asks me.
      I ‘ll send you a file to your email address if you want. :)

      Reply

Leave a Comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s