default="sqrt((-2*x**2+5)/3)"
default_steps=0.5
default_area=2
default_draw=true
def main(glt=default,step=default_steps,area=default_area,draw=default_draw):
x=var('x'); y=var('y'); gl=eval(glt)
def liY(x):
try:
return eval(glt)
except:
return None
re=ellipse_approx(step,area,liY)
print "umfang",N(re[0])
print "line segments:",re[1]
if draw:
g=implicit_plot(eval("y**2==("+glt+")*("+glt+")"),(x,-area,area),(y,-area,area))
for x in srange(-area+step/2,area,step):
g+=line([(x,-area),(x,area)])
show(g,aspect_ratio=1)
main()
#@interact
def gui(glt=default,step=default_steps,area=default_area,draw=default_draw):
main(glt,step,area,draw)
|
|
umfang 8.66935857497510
line segments: 12

umfang 8.66935857497510
line segments: 12

|