File:Catenoid.gif
Summary
Description |
English: Construction of a catenoid as the rotation of a catenary arc.
Español: Construcción de un catenoide como la rotación de un arco de catenaria.
Türkçe: Bir katenoidin zincir eğrisinin dönüşü ile yapımı. |
Date | |
Source | Own work |
Author | Nicoguaro |
GIF development | |
Source code | Python codeimport numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib import rcParams
# In Windows the next line should provide the full path to convert.exe
# since convert is a Windows command
rcParams['animation.convert_path'] = "C:\Program Files\ImageMagick-6.9.3-Q16\convert.exe"
rcParams['font.size'] = 12
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
plot_args = {'rstride': 3, 'cstride': 1, 'cmap':"Spectral",
'linewidth': 0.1, 'antialiased': True, 'color': 'k',
'shade': True, 'alpha': 0.5}
u = np.linspace(0, 2*np.pi, 30)
v = np.linspace(-1, 1, 30)
c = 1
x = c * np.outer(np.cosh(v/c), np.cos(u))
y = c * np.outer(np.cosh(v/c), np.sin(u))
z = np.outer(v, np.ones_like(u))
surf = ax.plot_surface(x[:, 0], y[:, 0], z[:, 0], **plot_args)
line = ax.plot(x[:, 0], y[:, 0], z[:, 0], 'k', lw=2)
ax.set_xlim(-2, 2)
ax.set_ylim(-2, 2)
ax.set_zlim(-1, 1)
plt.xlabel(r"$x$", fontsize=16)
plt.ylabel(r"$y$", fontsize=16)
ax.set_zlabel(r"$z$", fontsize=16)
def data_gen(num):
surf = ax.plot_surface(x[:, :num], y[:, :num], z[:, :num], **plot_args)
line = ax.plot(x[:, num-1], y[:, num-1], z[:, num-1], 'k', lw=2)
ax.view_init(elev=35, azim=45)
return surf, line
ani = animation.FuncAnimation(fig, data_gen, range(31), blit=False)
ani.save("Catenoid.gif", writer='imagemagick')
plt.show()
|
Licensing
I, the copyright holder of this work, hereby publish it under the following license:
This file is licensed under the Creative Commons Attribution 4.0 International license.
- You are free:
- to share – to copy, distribute and transmit the work
- to remix – to adapt the work
- Under the following conditions:
- attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.