How to calculate the intersection point of cedar shakes which share the same angle?

83 Views Asked by At

I'm sure the post title will be somewhat confusing so I'll try to explain my situation. I'm currently trying to draw, in CAD software, a cross-section through roof structure and I have encountered a geometrical issue which I can't quite work out how to solve. The roof finish is Oak or Cedar Shakes i.e. hand-cut timber rectangles with differing thickness at either end. The size I am using for a single Shake is shown below:

Single Shake example

My problem is relatively simple; as can been seen in the below image, each shake is 125mm apart from its neighbour, and both shakes are then rotated CCW by an unknown angle θ about the pivot points indicated by the red dots. Eventually, when θ is large enough, the opposing point on the bottom surface of Shake A (indicated by a green dot), will intersect with the sloping top surface of Shake B. The reason I am here is to seek advice how to calculate that intersection point?

Shake arrangement problem

n.b. I can manually determine an approximate intersection by process of trial and error applying rotational increments of increasing accuracy, but I would hope that there is some geometrical or computational method to calculate the exact intersection point.

4

There are 4 best solutions below

10
On BEST ANSWER

The shake increases from a thickness of $2$ to a thickness of $10$ at $325$, so it has a slope of $8:325$, or an angle $\varphi_T$, $$\varphi_T = \arctan\left(\frac{8}{325}\right) \approx 1.4101°$$

The distance between shakes is $125$, and since the initial thickness of the shake, this has a slope of $2:125$, or an angle $\varphi_B$, $$\varphi_B = \arctan\left(\frac{2}{125}\right) \approx 0.9166°$$

In other words, because $\varphi_T \gt \varphi_B$, it is the far bottom corner of the upper shake that intersects with the next shake, exactly as OP showed. (Perhaps it was obvious to you, because $\frac{8}{325} \gt \frac{2}{125}$, but I needed to check first.)

If we put the pivot of the top shake at origin, the far bottom corner is then at $x_1(\theta)$, $y_1(\theta)$, $$\left\lbrace ~ \begin{aligned} x_1(\theta) &= 325 \cos \theta \\ y_1(\theta) &= 325 \sin \theta \\ \end{aligned} \right . \tag{1}\label{1}$$ If we assume the shakes are at the exact same angle, on the lower shake the point at distance $L$ from the upper initial corner is at $x_2(\theta, L)$, $y_2(\theta, L)$, $$\left\lbrace ~ \begin{aligned} x_2(\theta) &= 125 - 2 \sin \theta + L \cos \left(\theta + \varphi_T\right) \\ y_2(\theta) &= 2 \cos\theta + L \sin \left(\theta + \varphi_T\right) \\ \end{aligned} \right . \tag{2}\label{2}$$ Note that with respect to OP's images, right is $x = 1, y = 0$; up is $x = 0, y = 1$; along angle $\theta$ is $x = \cos \theta$, $y = \sin\theta$, and perpendicular to (90° clockwise from) angle $\theta$ is $x = -\sin\theta$, $y = \cos\theta$.

At the intersection, we have a system of two equations in two unknowns ($\theta$ and $L$), $$\left\lbrace ~ \begin{aligned} x_1(\theta) &= x_2(\theta, L) \\ y_1(\theta) &= y_2(\theta, L) \\ \end{aligned} \right .$$ i.e. $$\left\lbrace ~ \begin{aligned} 325 \cos \theta &= 125 - 2 \sin \theta + L \cos \left(\theta + \arctan\left(\frac{8}{325}\right)\right) \\ 325 \sin \theta &= 2 \cos\theta + L \sin \left(\theta + \arctan\left(\frac{8}{325}\right)\right) \\ \end{aligned} \right . \tag{3}\label{3}$$ which we need to solve for $0.9166° \le \theta \le 60°$ (any maximum less than $90° - \varphi_T$ works, otherwise $L$ would be infinite or negative), and $0 \le L \le 325$.

I do not know how to solve this algebraically, but numerically it is easy. Whenever we have a candidate angle $\theta$, we can solve $L$ from the upper equation, i.e. $$L = \frac{325 \cos \theta - 125 + 2 \sin \theta}{\cos \left(\theta + \arctan\left(\frac{8}{325}\right)\right)}$$ and then compare the left and right sides of the lower equation. If the left side is greater than the right side, then the angle is too large; if the left side is less than the right side, the angle is too small. The bisection method (which programmers call 'a binary search') will quickly converge to the solution.

Because I'm faster at typing code than using Octave etc., I wrote this simple Python program,

from math import sin, cos, atan, pi

if __name__ == '__main__':

    # Separation between shakes
    d = 125

    # Shake total length
    Lmax = 325

    # Shake initial thickness
    tmin = 2

    # Shake final thickness
    tmax = 10

    # Angle of the upper surface of the shake
    a = atan((tmax - tmin)/Lmax)

    # Minimum angle is determined by the shake step
    theta_min = atan(tmin/d)
    # Let's set maximum angle at 60 degrees (60 * pi / 180)
    theta_max = pi / 3.0

    # Bisection method, aka binary search:
    while True:

        # Examine the middle of the interval left
        theta = 0.5*theta_min + 0.5*theta_max

        # Out of precision?
        if theta == theta_min or theta == theta_max:
            break

        # Solve for L
        L = (Lmax * cos(theta) - 125 + tmin*sin(theta)) / cos(theta + a)

        # If L is too long or negative, the angle is too large.
        if L > Lmax or L < 0:
            theta_max = theta
            continue

        # Solve for the y coordinate at the intersection
        y1 = Lmax * sin(theta)
        y2 = tmin * cos(theta) + L * sin(theta + a)

        if y1 < y2:
            # Angle is too small
            theta_min = theta
        elif y1 > y2:
            # Angle is too large
            theta_max = theta
        else:
            break

    print("theta = %.6f degrees" % (theta * 180 / pi))

which told me the solution is $\theta = 3.177100°$, or a slope of $\tan(3.177100°) \approx 0.055507759$, or about $1:18.0155$.

If we consider traditional methods, then approximating the angle as a slope of $1:18$ ($\approx 3.17983°$) has less than $0.1\%$ of error.

3
On

This was my first answer. In fact, I have found afterwhile very simple explanations, so different from these ones that I have given them in a second answer.


Initial answer:

The formulas giving the coordinates of the touching point are simple: first compute

$$t_0=\tan^{-1}\frac{c-a}{b}\tag{1}$$

followed by

$$t_1=\sin^{-1}[\tfrac{1}{d}(a \cos(t_0) + b \sin(t_0)]-t_0\tag{2}$$

Finally giving the coordinates of the touching point:

$$x=b \cos(t_1), \ y = b \sin(t_1)$$

which, with your numerical values :

$$a=2, b=325, c=10, d=125$$

gives the result:

$$x\approx 324.50, \ \ \ y \approx 18.01$$


Why that ? let us explain it using complex numbers geometry with the notations of the figure here (which is not at all at the given scale because my purpose was to obtain general formulas and be able to check them):

enter image description here

Let $t_1$ be the common angle of the bases of the first and second shakes wrt to the horizontal reference.

The angle of line segment $AC$ wrt horizontal line $OD$ is $t_1$ plus a certain angle $t_0$ given by $\tan t_0=\frac{c-a}{b}$ (which is equivalent to formula (1) above ; proof: consider right triangle $AA'C$ where $A'$ is the orthogonal projection of $A$ onto $BC$)

The complex expressions of points $A$ and $B$ are

$$A=aie^{it_1} \ \ \text{and} \ \ B=be^{i(t_0+t_1)}$$

Now, how can we express the constraint saying that point $B$ touches the other piece of wood ? By expressing that this point can be written in two ways and equating these two ways:

$$\text{there exists a real number} \ r \ \ \text{such that} \ \ be^{i t_1}=\underbrace{d+aie^{i t_1}+ r e^{i (t_1+t_0)}}_{\text{in the second shake}}\tag{4}$$

which is equivalent to :

$$r=(b-ai)e^{-it_0}-de^{-i(t_1+t_0)}\tag{5}$$

$r$ being a real number, a fact that allows us to equate (5) and its conjugate expression:

$$(b-ai)e^{-it_0}-de^{-i(t_1+t_0)}=(b+ai)e^{it_0}-de^{i(t_1+t_0)}\tag{6}$$

from which we deduce:

$$-2ib \sin(t_0)-2ia \cos(t_0) = -2id \sin(t_1+t_0) \tag{7}$$

$$b \sin(t_0)+a \cos(t_0) = d \sin(t_1+t_0) \tag{8}$$

Formula (8) gives almost immediately formula (2).

Remark: I am almost sure that relationship (8) can be established in a simpler way...

1
On

Let the origin be at the bottom left corner of Shake B (the right one). The coordinates of the bottom right corner is

$ P = (325, 0) $

It follows that the coordinates of the corresponding point in the unrotated Shake A is

$ Q = (200, 0) $

The top of the unrotated Shake B has the equation

$ y = 2 + \dfrac{ 10 - 2}{325} x = 2 + \dfrac{8}{325} x $

Rotating point $Q$ about the point $(-125, 0)$, it becomes

$Q' = (-125 + 325 \cos \theta , 325 \sin \theta ) $

And the top of Shake B after rotation about the origin, has the equation

$ ( -\sin \theta x' + \cos \theta y' ) = 2 + \dfrac{8}{325} (\cos \theta x' + \sin \theta y') $

We want $Q'$ to lie on this line, so

$ -\sin \theta (-125+ 325 \cos \theta) + \cos \theta (325 \sin \theta) = 2 + \dfrac{8}{325} ( \cos \theta (-125 + 325 \cos \theta ) + \sin \theta ( 325 \sin \theta ) ) $

Simplifying and re-arranging,

$ 125 \sin \theta = 2 + \dfrac{8}{325} (-125 \cos \theta + 325 ) $

$ \dfrac{40}{13} \cos \theta + 125 \sin \theta = 10 $

Whose acute solution is

$ \theta = 0.05545086 = 3.1771^\circ$

0
On

Here is a second solution of mine to this issue.

I have chosen to give it separately because it uses a technique which is very different from the first one, using much simpler (and visual) explanations.

Consider the image below and its notations.

enter image description here

Let us define angle $t_0$ by :

$$\tan t_0 = \frac{c-a}{b} \ \iff \ t_0=\tan^{-1}\left(\frac{c-a}{b}\right)\tag{1}$$

Elementary angle-chasing gives the indicated values of the angles in triangle $EFG$.

Sine law (proportionality of sidelengths to the sines of opposite angles) in triangle $EFG$ gives :

$$\frac{c}{\sin(t_0+t_1)}=\frac{d}{\cos t_0}$$

$$\sin(t_0+t_1)=\frac{c}{d} \cos t_0$$

finaly giving

$$t_1=\sin^{-1}\left(\frac{c}{d} \cos t_0 - t_0\right)\tag{2}$$

Formulas (1) and (2) provides all our needs, because, having angle $t_1$, we are able to conclude that tangency point $E$ has coordinates:

$$(x_E=b \cos t_1 , y_E=b \sin t_1)\tag{3}$$

Using the numerical values

$$a=2,b=325,c=10,d=125$$

(3) gives :

$$(x_E \approx 324,5005 \ , \ y_E \approx 18.0123)$$