"""
@author: krystian.rosinski [at] gmail [dot] com
Program rysuje wykresy sił tnących i momentów zginających belki wolnopodpartej obciążonej siłą skupioną przyłożoną w wybranym punkcie belki
"""
import numpy as np
from pylab import *
import matplotlib.pyplot as plt
l = 10
P = 20
@interact
def przyloz(x=(0,l)):
print("Reakcja na lewej podporze:")
Ra=P*(l-x)/l
print Ra
print("Reakcja na prawej podporze:");
Rb=P*x/l
print Rb
print("")
print("Maksymalny moment zginający:")
Mmax=P*x*(l-x)/l
print Mmax
i=np.array([[0,0,x,x,l,l]]).transpose()
T=np.array([[0,Ra,Ra,-Rb,-Rb,0]]).transpose()
M=np.array([[0,0,-Mmax,-Mmax,0,0]]).transpose()
clf()
ax1 = subplot(211)
plt.fill(i,T, color='green', alpha=0.2, hatch='||')
plt.grid(True)
xlabel('Odleglosc')
ylabel('Sila tnaca')
ax2 = subplot(212)
plt.fill(i,M, color='red', alpha=0.2, hatch='||')
plt.grid(True)
xlabel('Odleglosc')
ylabel('Moment zginajacy')
savefig('sily_wewnetrzne.png')