Aspect_ratio of a disk

asked 2023-05-07 11:24:52 +0200

Cyrille gravatar image

A nice graphics to the point of the deformation of the disk

var('x y u B')
assume(x>=0)
assume(y>=0)
assume(α>=0)
assume(α<=1)
assume(β>=0)
assume(β<=1)
assume(u>1)
U(x,y) = x^.5*y^.5
Dep(x,y) = .75*x  +.25* y
sol0=solve(U(x,y)==u,y)
sol1=solve(Dep(x,y)==B,y)
Incd(x,u)=sol0[0].rhs()#définition d'une courbe d'indifférence
#Même chose pour la droite de budget
Bud(x,B)=sol1[0].rhs()
sol2=solve(Bud(x,B)==0,x)
x0(B)=sol2[0].rhs()
B=0.85
p=plot(Incd(x,.5),(x,0.0575,x0(B)+.25),axes=False,linestyle='--')
p+=plot(Incd(x,.65),(x,0.1,x0(B)+.25),axes=False,linestyle='--')
p+=plot(Incd(x,1.2),(x,0.3,x0(B)+.25),axes=False,linestyle='--')
p+=plot(Incd(x,1.3),(x,0.35,x0(B)+.25),axes=False,linestyle='--')
p+=plot(Bud(x,B),(x,0,x0(B)),axes=False,thickness=2,color='green')
p+=arrow((0,0),(0,Bud(0,x0(B)+.15)),color='black')
p+=arrow((0,0),(x0(B)+0.5,0),color='black')
p+=text(r'$y$',(-.05,Bud(0,x0(B)+.15)),color='black',fontsize=14)
p+=text(r'$x$',(x0(B)+0.55,0),color='black',fontsize=14)
p+=text(r'$0$',(-.05,-.05),color='black',fontsize=14)
p+=text(r'$\frac{R}{p_x}$',(x0(B),-.25),color='black',fontsize=14)
p+=text(r'$\frac{R}{p_y}$',(-.05,Bud(0,B)),color='black',fontsize=14)
p+=text(r'$R=xp_x+yp_y}$',(.5,2.1),color='black',rotation=-41,fontsize=14)
p+=text(r'$\alpha$',(1.,.135),color='black',fontsize=14)
p+=text(r'''$\frac{p_x}{p_y}=\frac{R/p_x}{R/p_y}= \tan(\alpha)}$''',(2,2),color='black',fontsize=14)
p+=text(r'$U_1$',(1.45,.125),color='black',fontsize=10)
p+=text(r'$U_2$',(1.45,.3),color='black',fontsize=10)
p+=text(r'$U_n$',(1.475,1.025),color='black',fontsize=10)
p+=text(r'$U_{n+1}$',(1.475,1.2),color='black',fontsize=10)
#p+=arc((x0(B), 0), .15,.45, sector=(RDF.pi()/1.65, RDF.pi()),color='red',=True)
p+=disk((x0(B),0.0), .3, (1.2*pi/2, pi), color='lightgrey',aspect_ratio=1)

show(p,aspect_ratio=1/3)

I understand that heshow(p,aspect_ratio=1/3) comming after the aspect ratio of the disk, takes all. What can I do ?

edit retag flag offensive close merge delete

Comments

A naive workaround can be replacing the line with disk by

p+=polygon([(x0(B),0.0),(x0(B)-0.28,0.0),(x0(B)-0.2,0.6),(x0(B),0.0)], color='lightgrey')
achrzesz gravatar imageachrzesz ( 2023-05-07 12:53:53 +0200 )edit