Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Visualizing the Equation for the Eiffel Tower [Code Snippet]

DZone's Guide to

Visualizing the Equation for the Eiffel Tower [Code Snippet]

Look at a visualization of and some code for the equation that helped build the legendary Eiffel Tower.

· Big Data Zone ·
Free Resource

How to Simplify Apache Kafka. Get eBook.

Robert Banks's book Towing Icebergs, Falling Dominoes, and Other Adventures in Applied Mathematics describes the Eiffel Tower's shape as approximately the logarithmic curve:

...where y* and x0 are chosen to match the tower's dimensions.

Here's a plot of the curve:

And here's the code that produced the plot:

from numpy import log, exp, linspace, vectorize
import matplotlib.pyplot as plt

# Taken from "Towing Icebergs, Falling Dominoes,
# and Other Adventures in Applied Mathematics"
# by Robert B. Banks

# Constants given in Banks in feet. Convert to meters.
feet_to_meter = 0.0254*12
ystar  = 201*feet_to_meter
x0     = 207*feet_to_meter
height = 984*feet_to_meter

# Solve for where to cut off curve to match height of the tower.
# - ystar log xmin/x0 = height
xmin = x0 * exp(-height/ystar)

def f(x):
    if -xmin < x < xmin:
        return height
    else:
        return -ystar*log(abs(x/x0))
curve = vectorize(f)

x = linspace(-x0, x0, 400)

plt.plot(x, curve(x))
plt.xlim(-2*x0, 2*x0)
plt.xlabel("Meters")
plt.ylabel("Meters")
plt.title("Eiffel Tower")

plt.axes().set_aspect(1)
plt.savefig("eiffel_tower.svg")

And that's it!

12 Best Practices for Modern Data Ingestion. Download White Paper.

Topics:
python ,scipy ,big data ,data visualization

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}