ASKSAGE: Sage Q&A Forum - RSS feedhttps://ask.sagemath.org/questions/Q&A Forum for SageenCopyright Sage, 2010. Some rights reserved under creative commons license.Fri, 10 Apr 2020 18:33:59 +0200Programming an interactionhttps://ask.sagemath.org/question/50650/programming-an-interaction/Certainly due to my lack of competence this code
pol = polygon([(0,0), (0,10), (10,10), (0,0)], fill=True, rgbcolor=(0.81,0.81,0.81))
g = plot(x,(0,10),color="blue",ymin=0,ymax=10)
@interact
def _(c=slider(0,1,step_size=0.2,default=.5),inac=checkbox(True,"Domaine Inaccessible")):
a = solve(-c*x+6==x, x)
aa = a[0].right()
h = plot(-c*x+6,(aa, 6),color="green",ymin=0,ymax=10)
graph = h+g
if inac :
graph += pol
show(graph)
conplains that `graph` is not defined.
Is there some thing I have not understood in the construction of `@interact`?Fri, 10 Apr 2020 10:18:06 +0200https://ask.sagemath.org/question/50650/programming-an-interaction/Answer by Juanjo for <p>Certainly due to my lack of competence this code</p>
<pre><code> pol = polygon([(0,0), (0,10), (10,10), (0,0)], fill=True, rgbcolor=(0.81,0.81,0.81))
g = plot(x,(0,10),color="blue",ymin=0,ymax=10)
@interact
def _(c=slider(0,1,step_size=0.2,default=.5),inac=checkbox(True,"Domaine Inaccessible")):
a = solve(-c*x+6==x, x)
aa = a[0].right()
h = plot(-c*x+6,(aa, 6),color="green",ymin=0,ymax=10)
graph = h+g
if inac :
graph += pol
show(graph)
</code></pre>
<p>conplains that <code>graph</code> is not defined.</p>
<p>Is there some thing I have not understood in the construction of <code>@interact</code>?</p>
https://ask.sagemath.org/question/50650/programming-an-interaction/?answer=50661#post-id-50661Perhaps the problem came from indentation, that I have had to adjust a bit. Try this:
pol = polygon([(0,0), (0,10), (10,10), (0,0)], fill=True, rgbcolor=(0.81,0.81,0.81))
g = plot(x, (0,10), color="blue")
@interact
def _(c=slider(0.01,1, step_size=0.2, default=.5),
inac=checkbox(True,"Domaine Inaccessible")):
a = x.subs(solve(-c*x+6==x, x))
h = plot(-c*x+6, (a,6), color="green")
graph = h+g
if inac:
graph += pol
show(graph, aspect_ratio=1, ymin=0,ymax=10)
By the way, the code failed if `c=0`, as I already pointed in other question, and the plot didn't keep proportions when checking or unchecking `inac`. I've modified the code to deal with these problems.Fri, 10 Apr 2020 18:33:59 +0200https://ask.sagemath.org/question/50650/programming-an-interaction/?answer=50661#post-id-50661