In [1]:
%pylab inline
In [2]:
from math import hypot
def tav(x1,x2):
tmp=math.hypot(x1[0]-x2[0],x1[1]-x2[1])
return(tmp)
xx=[7,6] yy=[4,3] tav(xx,yy)
$\alpha^2$
In [3]:
# input adatok
In [4]:
#?subplot
In [5]:
r1=[-2,2]
r2=[2,2]
Xmin,Xmax,Nstep=-12,12,57
#Xmin,Xmax,Nstep=-12,-7,157
nyilhegy1=0.005 # nyilak hegyenek merete
mintav=tav([r1[0],-r1[1]],r2)
x=linspace(Xmin,Xmax,Nstep)
v0=[0,0]
elist=[]
for i in range(len(x)):
tavs=tav(r1,[x[i],0])+tav([x[i],0],r2)
elist.append([cos(tavs-mintav),sin(tavs-mintav)])
#for i in range(len(x)):
# print(elist[i],linalg.norm(elist[i]))
eredo=list(sum(array(elist),axis=0));
# print(eredo)
vlist=[v0]
for i in range(len(x)):
vlist.append([vlist[i][0]+elist[i][0],vlist[i][1]+elist[i][1]])
In [6]:
figsize(10,10)
subplots_adjust(hspace=0.001)
# palyak rajzolasa
ax1=subplot(211)
for i in range(len(x)):
plot([r1[0],x[i],r2[0]],[r1[1],0,r2[1]],color='b')
plot(x,0*x,color='r',lw=3)
xlim(min(Xmin,3*r1[0])-2,1.3*(max(Xmax,2*r2[0])))
ylim(-0.1,1.1*r2[1])
axis('on')
#nyilak rajzolasa a palyak ala
# ,aspect='equal'
ax2=subplot(212,sharex=ax1,aspect='equal')
arrowprops=dict(width=1.8*nyilhegy1,color='b',length_includes_head=True)
fact=3
for i in range(len(x)):
arrow(x[i],0,fact*elist[i][0],fact*elist[i][1],**arrowprops)
#xlim(Xmin-1,Xmax+1)
ylim(-fact,fact)
xticklabels = ax1.get_xticklabels()+0*ax2.get_xticklabels()
setp(xticklabels, visible=False)
axis('on');
rajzol
In [7]:
figsize(10,10)
subplot(111,aspect='equal')
for i in range(len(x)):
arrow(vlist[i][0],vlist[i][1],elist[i][0],elist[i][1],**arrowprops)
#axis('equal')
nyilhegy1=0.004 # nyilak hegyenek merete
nyilhegy2=2.5*nyilhegy1 # az eredo nyil hegyenek merete
arrowprops=dict(width=1.8*nyilhegy1,color='b',length_includes_head=True)
arreredo=dict(width=nyilhegy2,color='r',length_includes_head=True)
arrow(v0[0],v0[1],eredo[0],eredo[1],**arreredo)
tmplistx=[]
tmplisty=[]
xym=3
for i in range(len(x)):
tmplistx.append(vlist[i][0])
tmplisty.append(vlist[i][1])
tmplistx.sort()
tmplisty.sort()
pfact=1.2
xlim(pfact*tmplistx[0],pfact*tmplistx[len(tmplistx)-1])
ylim(pfact*tmplisty[0],pfact*tmplisty[len(tmplistx)-1])
axis('off');
In [ ]: