In [1]:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
In [2]:
R = 10
k = 275
p0, q0 = [20, 0], [-20, 0]
dist = lambda p1, p2: np.sqrt( (p1[0]-p2[0])**2 + (p1[1]-p2[1])**2 )
force = lambda r: - k / r**2
theta = np.linspace(-np.pi, np.pi, 50)
In [3]:
fig, ax = plt.subplots(figsize=(9, 5.25))
color= 'ivory'
for t in theta:
p1 = [-R * np.cos(t), R * np.sin(t)]
if t < np.pi * 0.5 and t > -np.pi * 0.5:
r = dist(q0, p1)
else:
r = dist(p0, p1)
F = force(r)
ax.arrow(p1[0], p1[1], F * np.cos(t), F * np.sin(t),
head_width=0.5, head_length=0.7,
facecolor=color, edgecolor='silver')
ax.annotate("+", xytext=(0,0), size=30, xy=(0,0),
ha="center", va="center", color=color)
ax.annotate(u"Satélite", xy=(25,0), xytext=(15,0),
size=30, va="center", color=color,
arrowprops=dict(arrowstyle="fancy",
facecolor=color,
edgecolor='silver'))
ax.set_xlim(-14, 25)
ax.set_ylim(-11, 11)
ax.plot(-R * np.cos(theta), R * np.sin(theta), linewidth=3., color='chocolate')
ax.axis('off')
fig.savefig('tidal_bulge.svg', bbox_inches='tight',
pad_inches=0.15, transparent=True)