"""
@author: krystian.rosinski [at] gmail [dot] com
Program oblicza charakterystyki geometryczne i rysuje rdzeń przekroju teowego
"""
import numpy as np
from pylab import *
import matplotlib.pyplot as plt
h = 16
b = 15
t = 5
d = 4
print('Pole powierzchni:')
A = b*d+(h-d)*t
print A
Sx = b*d*d/2 + (h-d)*t*(d+(h-d)/2)
print('Odległość środka ciężkości od góry przekroju:')
yc=Sx/A
print yc
print('Momenty bezwładności:')
Ix = b*d^3/12 + b*d*(yc-d/2)*(yc-d/2) + t*(h-d)^3/12 + t*(h-d)*(d+(h-d)/2-yc)*(d+(h-d)/2-yc)
print Ix
Iy = d*b^3/12 + (h-d)*t^3/12
print Iy
print('Kwadraty promieni bezwładności:')
ix2=Ix/A
print ix2
iy2=Iy/A
print iy2
u = np.zeros((7))
v = np.zeros((7))
u[0] = 0
v[0] = -ix2/yc
u[1] = -iy2/(b/2)
v[1] = 0
e = (h-d)/(t-b)
x0 = (yc+b*e-d)/(2*e)
u[2] = -iy2/x0
y0 = yc+b*e-d
v[2] = -ix2/y0
u[3] = 0
v[3] = -ix2/-(h-yc)
u[4] = -u[2]
v[4] = v[2]
u[5] = -u[1]
v[5] = 0
u[6] = u[0]
v[6] = v[0]
print('Współrzędne wierzchołków rdzenia w układzie przechodzącym przez środek ciężkości przekroju :')
wsp = np.column_stack((u.transpose(),v.transpose()))
print wsp
x = np.array(([-b/2,b/2,b/2,t/2,t/2,-t/2,-t/2,-b/2,-b/2]))
y = np.array(([yc,yc,yc-d,yc-d,yc-h,yc-h,yc-d,yc-d,yc]))
fig = plt.figure()
ax = fig.add_axes([0.1,0.1,0.8,0.8])
l1, = ax.plot(x, y, "-", color='blue', lw=2, label="przekroj")
l2, = plt.fill(u, v, color='red', alpha=0.6)
l3, = ax.plot([-b/2,b/2],[0,0], color='green', lw=1, label="os x")
l4, = ax.plot([0,0],[yc-h,yc], color='green', lw=1, label="os y")
plt.show()
savefig('rdzen.png')