# How to plot shear force and bending moment diagram?

import math
import matplotlib.pyplot as plt

#Variable Decleration
w1=400 #UDL in lb/ft
P=400 #Point load at C in lb
w2=200 #UDL in lb/ft
L1=2 #Length in ft
L2=1 #Length in ft
L3=4 #Length in ft
V_A=0 #Shear force at A in lb
Rb=-1520 #Reaction at B in lb
Rd=-880 #Reaction at D in lb
d=1.6 #Distance in ft

#Calculations
#The plotting of the Shear force diagram and the Bending Moment Diagram
#Will be done different from that done in the textbook

#Calculations for Shear Force
Area1=P*L1 #Area of w diagram from A to B
Area2=0 #Area of w diagram from B to C
Area3=w2*L3 #Area of w diagram from C to D
V_B_left=V_A-Area1 #Shear Force at left of B in lb
V_B_right=V_B_left-Rb #Shear force at right of B in lb
V_C_left=V_B_right-Area2 #Shear Force at left of C in lb
V_C_right=V_C_left-P #Shear Force at right of C in lb
V_D_left=V_C_right-Area3 #Shear Force at left of D in lb
V_D_right=V_D_left-Rd #Shear Force at right of D in lb
V_E=0 #Shear Force at E in lb

#Calculations for Bending Moments
AreaV1=0.5*L1*V_B_left #Area of V diagram
AreaV2=V_C_left*L2 #Area of V diagram from B to C
AreaV3=V_D_left*(L3-d)*0.5 #Area of V diagram from F to D
M_A=0 #Moment at A in lb.ft
M_B=M_A+AreaV1 #Moment about B in lb.ft
M_C=M_B+AreaV2 #Moment about C in lb.ft
M_F=M_C+V_C_right*0.5*d #Moment about F in lb.ft
M_D=M_F+AreaV3 #Moment about D in lb.ft
M_E=0 #Moment about E in lb.ft

#Result
print ("The following plots are the results")

#Plotting

#Shear Force
x=[0,L1,L1+0.000001,L1+d,L1+d+0.000001,L1+L3,L1+L3+0.000001,L1+L3+L1]
V=[V_A,V_B_left,V_B_right,V_C_left,V_C_right,V_D_left,V_D_right,V_E]
zero=[0,0,0,0,0,0,0,0]
plt.plot(x,V,x,zero)
plt.xlabel("Length in ft")
plt.ylabel("Shear Force in lb")
plt.title("Shear Force Diagram")
plt.show()

#Bending Moment
x1=[0,L1,L1+L2,L1+L2+d,L1+L3,L1+L3+L1]
BM=[M_A,M_B,M_C,M_F,M_D,M_E]
zero1=[0,0,0,0,0,0]
plt.plot(x1,BM,x1,zero1)
plt.xlabel("Length in ft")
plt.ylabel("Bending Moment in lb.ft")
plt.title("Bending Moment Diagram")
plt.show()

#The Bending Moment Diagram differs from that in the textbook because of curve type