da Vinci bridges

Below the diagram are some notes on the calculations.

cross-member thickness: thick = mm
cross-member width: wide = mm
side-member height: high = mm
side-member length: long = mm (excluding ends)

number of segments =
total span (dark green line) = mm (approx.)

For upright side-members, high == wide; for flat side-members, high == thick.

To calculate the geometry of the bridge, we view each side-member as consisting of five sections:

        long == wide + 2*reach; reach =  mm

The angle between members is calculated from the right-angled triangle formed by:

        tan(theta/2) = (high/2 + thick/2) / (reach/2)
	theta =  degrees

This is an approximation. It fails when the cross-members are very thick, because I estimated that halfway up the cross-member is close enough to halfway between the side-members. This is not quite true because the edge of the cross-member does not form the same angle with both side-members. I also guesstimated that the crossing point is the centre of the reach.

The angle theta is also the angle between each segment of the bridge, shown by the red lines that join at the centre of curvature. This gives us the number of segments to maximize the span of the bridge:

        segs = floor(180 / theta)

The total span is another approximation. We calculate an outer radius as the distance from the centre of curvature to a point where the ends of two side-members would cross above a cross-member (if their ends extend far enough). We estimate that these outer crossing points close enough to the ends of the side-members, so we can use them to locate the ends of the entire bridge. The outer radius is calculated from the inner radius, from the centre of curvature to the centre of a side-member.

        tan(theta/2) = (reach/2 + wide/2) / inner
        cos(theta) = inner / outer

PS. If this page has a blank space, you need to enable JavaScript so that it can draw the interactive diagram.


Tony Finch <dot@dotat.at>