Editor SVG
Digite (ou cole) seus comandos ASCIIsvg e pressione o botão Update para ver a figura.
Para salvar seu trabalho, selecione o texto (Ctrl-A) e faça a cópia para um editor de texto (Bloco de notas, p.e.).
Escolha o layout que melhor se ajusta ao seu tamanho de tela:
| Digite (comandos ASCIIsvg e JavaScript) | Mostrar (Exige IE+SVGviewer 3.01 or Mozilla+SVG) |
|
|
| setBorder(pixelvalue) (default 25) | |
| initPicture( xmin, xmax {, ymin {, ymax}} ) | axes( {dx, dy,} {"labels" {, "grid"| gdx {, gdy}}} ) |
| line( [x,y], [u,v] ) | marker = "dot" | "arrow" | "arrowdot" | "none" |
| path( [ [x1,y1], [x2,y2], ..., [xn,yn] ] ) | curve( [ [x1,y1], [x2,y2], ..., [xn,yn] ] ) |
| plot( "f(x)" {, xmin, xmax, npoints} ) | plot( [ "f(t)", "g(t)" ] {, tmin, tmax, npoints} ) |
| stroke = "color" | strokewidth = "pixelvalue" (default 1) |
| fill = "color" | strokedasharray = "dashpixel spacepixel" |
| fontsize = "pixel" (default 20) | fontweight = "bold" | "normal" |
| fontstyle = "italic" | "normal" | fontfamily = "serif"|"sansserif"|"fixed"|"monotype" |
| circle( [x,y], r ) | ellipse( [x,y], rx, ry ) |
| arc( [x,y], [u,v], r ) | rect( [x,y], [u,v] ) |
| text( [x,y], "label" {, position} ) | dot( [x,y] {, open | closed {, "label", position} ) |
| position pode ser: above, below, left, right, | aboveleft, aboveright, belowleft, belowright, null |
Para o comando plot, as funções f(x), f(t), g(t) podem utilizar qualquer função ou constante JavaScript válida (sem o prefixo "Math.") e o seguinte:
Operadores: +, -, *, /, ^
Constantes: pi, e
Funções: sqrt(), ln(), abs(), sign(), floor(), ceil(), n!, C(n,k), ran(a,b,n), sin(), cos(), tan(), sin^-1(), cos^-1(), tan^-1(), sinh(), cosh(), tanh(), sinh^-1(), cosh^-1(), tanh^-1(), sech(), csch(), coth(), sech^-1(), csch^-1(), coth^-1().
cpi e ctheta representam as correspondentes letras gregas.
O símbolo de multiplicação * pode ser omitido depois de um dígito (0-9) ou de um parênteses fechado.
Este editor é útil para o aprendizado de coordenadas geométricas, gráficos de funções, curvas paramétricas, JavaScript, SVG, ... Divirta-se.
Você pode salvar uma cópia desta página no seu computador local utilizando Save As... e utilizar este editor SVG mesmo sem estar conectado à internet.
A tabela que segue mostra códigos que tratam de gráficos básicos e aspectos matemáticos importantes, como funções polinomiais, trigonométricas, função logaritmo e função exponencial. A especificação é feita por meio de parâmetros (indicados no código com <===) que podem ser alterados e o gráfico refeito para visualização dos efeitos. Simplesmente copie e cole o código no editor SVG e pressione o botão Update.
| Gráfico com recursos gerais |
setBorder(0); initPicture(-5,5) axes(2, 1, "labels", 1); stroke = "blue" plot("sin(x)") stroke = "red" plot(["5*t*cos(pi*t)", "5*t*sin(pi*t)"],0,1) stroke = "green"; strokewidth = "2" marker = "arrowdot" line([0,1], [pi/2,1]); dot([pi,0], "open", cpi) text([-2.5,-2.5], "Exemplo ASCIIsvg") |
agraph width=250;height=250;setBorder(0) initPicture(-5,5) axes(2, 1, "labels", 1) stroke = "blue" plot("sin(x)") stroke = "red" plot(["5*t*cos(pi*t)", "5*t*sin(pi*t)"],0,1) stroke = "green" strokewidth = "2" marker = "arrowdot" line([0,1], [pi/2,1]) dot([pi,0], "open", cpi) text([-2.5,-2.5], "Exemplo ASCIIsvg") endagraph |
| Outro com recursos gerais |
width="300"; height="350"; border=10 xmin=-1; xmax=6; ymin=-1; axes() plot(sin(x)+2.5) a = [0,0];b = [5,5] marker = "dot"; line(a,b) text(a,"a",belowright); text(b,"g",above) text(b,"b",right); text(b,"b",left) text(b,"b",below); text(b,"b",aboveleft) text(b,"b",aboveright); text(b,"b",belowleft) text(b,"b",belowright) stroke = "red"; path([a,[0,5],b,[5,0]]) stroke = "green"; marker = "none" curve([a,[.25,0],[.5,.5],[1,1],[1.5,1.5]]) stroke = "blue"; circle([5,0],1) ellipse([0,5],1,2) stroke = "purple"; rect([0,0],[2,2],null,.5,1) marker = "arrowdot"; line(a,[5,0]) |
agraph width="300"; height="350"; border=10 xmin=-1; xmax=6; ymin=-1; axes() plot(sin(x)+2.5) a = [0,0] b = [5,5] marker = "dot" line(a,b) text(a,"a",belowright) text(b,"g",above) text(b,"b",right) text(b,"b",left) text(b,"b",below) text(b,"b",aboveleft) text(b,"b",aboveright) text(b,"b",belowleft) text(b,"b",belowright) stroke = "red" path([a,[0,5],b,[5,0]]) stroke = "green" marker = "none" curve([a,[.25,0],[.5,.5],[1,1],[1.5,1.5]]) stroke = "blue" circle([5,0],1) ellipse([0,5],1,2) stroke = "purple" rect([0,0],[2,2],null,.5,1) marker = "arrowdot" line(a,[5,0]) endagraph |
| Pontos |
width=200; height=200; xmin=-6 xmax=6; xscl=1; axes() stroke="red" dot([-3,-3],"open"); dot([-2,-2],"closed") stroke="green"; dot([0,0],"closed") stroke="blue"; dot([2,2],"closed"); dot([3,3],"open") |
agraph width=200; height=200; xmin=-6; xmax=6; xscl=1; axes(); stroke="red"; dot([-3,-3],"open"); dot([-2,-2],"closed"); stroke="green"; dot([0,0],"closed"); stroke="blue"; dot([2,2],"closed"); dot([3,3],"open") endagraph |
| Linha com ponto no final |
width=200; height=50; gridstroke="white" xmin=-1.5; xmax=10.5; xscl=1; yscl=4 axes(); strokewidth="2"; endpoints="<-o" a=[-1,0]; b=[7,0]; line(a,b) |
agraph width=200; height=50; gridstroke="white"; xmin=-1.5; xmax=10.5; xscl=1; yscl=4; axes(); strokewidth="2"; endpoints="<-o"; a=[-1,0]; b=[7,0]; line(a,b) endagraph |
| Linha com ponto no final 2 |
width=200; height=200 xmin=-6; xmax=6; xscl=1; axes() stroke="green"; endpoints="<->" line([-4,-3],[3,4]); stroke="blue" endpoints="*->"; line([4,-2],[-5,4]) |
agraph width=200; height=200; xmin=-6; xmax=6; xscl=1; axes(); stroke="green"; endpoints="<->"; line([-4,-3],[3,4]); stroke="blue"; endpoints="*->"; line([4,-2],[-5,4]) endagraph |
| Círculos |
width=200; height=200 xmin=-6; xmax=6; xscl=1; axes() stroke="green"; circle([-2,0],2) stroke="blue"; strokewidth=5 circle([-2,0],3); stroke="red" strokewidth=3; fill="yellow"; circle([2,2],2) |
agraph width=200; height=200; xmin=-6; xmax=6; xscl=1; axes(); stroke="green"; circle([-2,0],2); stroke="blue"; strokewidth=5; circle([-2,0],3); stroke="red"; strokewidth=3; fill="yellow"; circle([2,2],2) endagraph |
| Elipses |
width=200; height=200 xmin=-6; xmax=6; xscl=1; axes() stroke="blue"; strokewidth=5 ellipse([-3.5,0],2,4) stroke="red"; strokewidth=3; fill="green" ellipse([1,4],4,0.5) |
agraph width=200; height=200; xmin=-6; xmax=6; xscl=1; axes(); stroke="blue"; strokewidth=5; ellipse([-3.5,0],2,4); stroke="red"; strokewidth=3; fill="green"; ellipse([1,4],4,0.5) endagraph |
| Retângulos |
width=200; height=200 xmin=-6; xmax=6; xscl=1; axes() stroke="blue"; strokewidth=3; fill="red" rect([-4,-4],[-2,4]); stroke="red"; strokewidth=1 fill="green"; rect([-5,-1],[5,1]) |
agraph width=200; height=200; xmin=-6; xmax=6; xscl=1; axes(); stroke="blue"; strokewidth=3; fill="red"; rect([-4,-4],[-2,4]); stroke="red"; strokewidth=1; fill="green"; rect([-5,-1],[5,1]) endagraph |
| Polígono |
width=200; height=200 xmin=-6; xmax=6; xscl=1; axes() a=[-2,-4]; b=[-4,-2]; c=[0,0]; d=[2,-2] e=[-4,2]; f=[0,4]; g=[3,3] stroke="blue"; strokewidth=3 fill="red"; path([a,b,c,d,a]) |
agraph width=200; height=200; xmin=-6; xmax=6; xscl=1; axes(); a=[-2,-4]; b=[-4,-2]; c=[0,0]; d=[2,-2]; e=[-4,2]; f=[0,4]; g=[3,3]; stroke="blue"; strokewidth=3; fill="red"; path([a,b,c,d,a]) endagraph |
| Eixos, rótulos e grid |
width=200; height=200 xmin=-6; xmax=6; setBorder(10) axes(2, 3, "labels", 2, 3); stroke="red" strokewidth=2 plot("0.2x^4-x^3+3x-3",-2.2,4.7,null,null,"<->") |
agraph width=200; height=200; xmin=-6; xmax=6; setBorder(10); axes(2, 3, "labels", 2, 3); stroke="red"; strokewidth=2; plot("0.2x^4-x^3+3x-3",-2.2,4.7,null,null,"<->") endagraph |
| Arcos e setores |
width=200; height=200 xmin=-6; xmax=6; xscl=1; axes() stroke="green"; strokewidth=2 arc([0,3],[-3,0],3) stroke="blue"; strokewidth=3 arc([-4,0],[4,0],4); stroke="red" strokewidth=0; fill="yellow" a=[0,0]; b=[5,0]; c=[0,5] path([a,b,c,a]); strokewidth=3; arc([5,0],[0,5],5) |
agraph width=200; height=200; xmin=-6; xmax=6; xscl=1; axes(); stroke="green"; strokewidth=2; arc([0,3],[-3,0],3); stroke="blue"; strokewidth=3; arc([-4,0],[4,0],4); stroke="red"; strokewidth=0; fill="yellow"; a=[0,0]; b=[5,0]; c=[0,5]; path([a,b,c,a]); strokewidth=3; arc([5,0],[0,5],5) endagraph |
| Texto |
width=200; height=200 xmin=-6; xmax=6; axes(7, 7, "labels", 6, 6) stroke="red"; strokewidth=2; fontsize=12 fill="lightgreen"; ellipse([0,0],5,3) text([0.3,1], "ASCIIsvg é a coisa mais legal") text([0.3,-1], "depois da pasta de amendoim!" text([4,5], "Quadrante I"); text([-3.7,5], "Quadrante II") text([-3.7,-5], "Quadrante III"); text([4,-5], "Quadrante V") |
agraph width=200; height=200; xmin=-6; xmax=6; axes(7, 7, "labels", 6, 6); stroke="red"; strokewidth=2; fontsize=12; fill="lightgreen"; ellipse([0,0],5,3); text([0.3,1], "ASCIIsvg é a coisa mais legal"); text([0.3,-1], "desde a pasta de amendoim!"); text([4,5], "Quadrante I"); text([-3.7,5], "Quadrante II"); text([-3.7,-5], "Quadrante III"); text([4,-5], "Quadrante V") endagraph |
| Prisma |
width=200; height=200 xmin=0; xmax=10; xscl=1 ymin=-1; ymax=10; noaxes() stroke="blue"; strokewidth=2 a=[2,1]; b=[5,0]; c=[5,4]; d=[2,5] e=[9,3]; f=[9,7]; g=[6,8]; h=[6,4] fillopacity=0.5; fill="yellow" path([a,d,g,h,a]); path([h,e,f,g,h]) path([a,b,c,d,a]); fill="orange" path([b,c,f,e,b]); text([8,8],"w") text([9.5,4.5], "h"); text([4,7.5],"l") |
agraph width=200; height=200; xmin=0; xmax=10; xscl=1; ymin=-1; ymax=10; noaxes(); stroke="blue"; strokewidth=2; a=[2,1]; b=[5,0]; c=[5,4]; d=[2,5]; e=[9,3]; f=[9,7]; g=[6,8]; h=[6,4]; fillopacity=0.5; fill="yellow"; path([a,d,g,h,a]); path([h,e,f,g,h]); path([a,b,c,d,a]); fill="orange"; path([b,c,f,e,b]); text([8,8],"w"); text([9.5,4.5], "h"); text([4,7.5],"l") endagraph |
| Linhas retas, i.e., gráficos da equação linear `y=mx+b`. Os valores `m` e `b` são, respectivamente, o coeficiente angular (declividade) e intercepto. |
setBorder(10); initPicture(-5,5) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" m=2;b=1 // <=== dot([0,b],closed,"intercepto-y",right) plot("m*x+b") // a função predefinida stroke = "red"; strokedasharray = null m=-2;b=1 // <=== plot("m*x+b") // a função predefinida |
agraph setBorder(10); initPicture(-5,5) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" m=2;b=1 // <=== dot([0,b],closed,"intercepto-y",right) plot("m*x+b") // a função predefinida stroke = "red"; strokedasharray = null m=-2;b=1 // <=== plot("m*x+b") // a função predefinida endagraph |
| Parábolas, i.e., gráficos da equação quadrática `y = ax^2+bx+c`. Qualquer equação desse tipo pode ser escrita na forma `y = a(x-h)^2 + k`, completando-se o quadrado. da parábola. Os valores específicos de `h,k` indicam o vértice e `a` é o (completar). |
setBorder(10) initPicture(-5,5) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=1/2;h=2; k=1; // <=== dot([h,k],closed,"vértice",below) plot("a*(x-h)^2+k") // função predefinida stroke = "red"; strokedasharray = null a=-2; h=2; k=2; // <=== dot([h,k],closed,"vértice",above) plot("a*(x-h)^2+k") // função predefinida |
agraph setBorder(10) initPicture(-5,5) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=1/2;h=2; k=1; // <=== dot([h,k],closed,"vértice",below) plot("a*(x-h)^2+k") // função predefinida stroke = "red"; strokedasharray = null a=-2; h=2; k=2; // <=== dot([h,k],closed,"vértice",above) plot("a*(x-h)^2+k") // função predefinida endagraph |
| Curvas de terceiro grau, i.e., gráficos de equações polinomiais de terceiro grau `y = ax^3+bx^2+cx+d`. Se a equação cúbica tem três raízes reais, então pode ser escrita na forma `y=a(x-p)(x-q)(x-r)`. |
setBorder(10); initPicture(-5,5) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=1;p=2;q=1;r=3 // <=== dot([0,-a*p*q*r],closed,"intercepto-y",right) plot("a*(x-p)(x-q)(x-r)") // função predefinida stroke = "red"; strokedasharray = null a=2;p=1;q=1;r=3 // <=== dot([0,-a*p*q*r],closed,"intercepto-y",right) plot("a*(x-p)(x-q)(x-r)") // função predefinida |
agraph setBorder(10); initPicture(-5,5) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=1;p=2;q=1;r=3 // <=== dot([0,-a*p*q*r],closed,"intercepto-y",right) plot("a*(x-p)(x-q)(x-r)") // função predefinida stroke = "red"; strokedasharray = null a=2;p=1;q=1;r=3 // <=== dot([0,-a*p*q*r],closed,"intercepto-y",right) plot("a*(x-p)(x-q)(x-r)") // função predefinida endagraph |
| Curvas do seno, i.e., gráficos da equação trigonomética `y = a*sin(bx)+c`. O valor |a| é denominado ammplitude, b é a frequência (número de vezes que a onda sobe e desce no intervalo `(0, 1]`), e `c` é a mudança vertical. |
setBorder(0); initPicture(-10,10) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=1;b=1/2;c=-1/2 // <=== plot("a*sin(b*x)+c") // a função predefinida stroke = "red"; strokedasharray = null a=2;b=1;c=2 // <=== plot("a*sin(b*x)+c") // a função predefinida stroke = "green" a=1;b=1;c=3 // <=== plot("a*sin(b*x)+c") // a função predefinida |
agraph setBorder(0); initPicture(-10,10) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=1;b=1/2;c=-1/2 // <=== plot("a*sin(b*x)+c") // a função predefinida stroke = "red"; strokedasharray = null a=2;b=1;c=2 // <=== plot("a*sin(b*x)+c") // a função predefinida stroke = "green"; a=1;b=1;c=3 // <=== plot("a*sin(b*x)+c") // a função predefinida endagraph |
| Curvas do cosseno, i.e., gráficos da equação trigonomética `y = a*cos(bx)+c`. O valor |a| é denominado ammplitude, b é a frequência (número de vezes que a onda sobe e desce no intervalo `(0, 1]`), e `c` é a mudança vertical. |
setBorder(0); initPicture(-10,10) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=1;b=1/2;c=-1/2 // <=== plot("a*cos(b*x)+c") // função predefinida stroke = "red"; strokedasharray = null a=2;b=1;c=2 // <=== plot("a*cos(b*x)+c") // função predefinida |
agraph setBorder(0); initPicture(-10,10) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=1;b=1/2;c=-1/2 // <=== plot("a*cos(b*x)+c") // função predefinida stroke = "red"; strokedasharray = null a=2;b=1;c=2 // <=== plot("a*cos(b*x)+c") // função predefinida endagraph |
| Curvas tangentes, i.e., gráficos da equação trigonomética `y = a*tan(x+c)`. O valor |a| é denominado ammplitude e `c` é o "angulo fase. |
setBorder(0); initPicture(-5,5) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=2;c=2 // <=== plot("a*tan(x+c)") // função predefinida stroke = "red"; strokedasharray = null a=1;c=1 // <=== plot("a*tan(x+c)") // função predefinida |
agraph setBorder(0); initPicture(-5,5) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=2;c=2 // <=== plot("a*tan(x+c)") // função predefinida stroke = "red"; strokedasharray = null a=1;c=1 // <=== plot("a*tan(x+c)") // função predefinida endagraph |
| Curvas secantes, i.e., gráficos da equação trigonomética `y = a*sec(bx)`. O valor |a| é denominado ammplitude, b é a frequência (número de vezes que a curva se repete no intervalo `(0, 1]`). |
setBorder(0); initPicture(-5,5) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=1;b=2 // <=== plot("a*sec(b*x)") // função predefinida stroke = "red"; strokedasharray = null a=2;b=1 // <=== plot("a*sec(b*x)") // função predefinida |
agraph setBorder(0); initPicture(-5,5) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=1;b=2 // <=== plot("a*sec(b*x)") // função predefinida stroke = "red"; strokedasharray = null a=2;b=1 // <=== plot("a*sec(b*x)") // função predefinida endagraph |
| Curvas cossecantes, i.e., gráficos de equações trigonométricas do tipo `y = a*csc(bx+c)`. O valor de `|a|` é denominado amplitude e `b` está relacionado com a frequência (número de vezes que a curva se repete sobre o intervalo [0,1]). |
setBorder(10); initPicture(-5,5.01) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=1;b=2;c=-1 // <=== plot("a*csc(b*x)") // funcao predefinida stroke = "red"; strokedasharray = null a=2;b=1;c=1 // <=== plot("a*csc(b*x)") // funcao predefinida |
agraph setBorder(10); initPicture(-5,5.01) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=1;b=2;c=-1 // <=== plot("a*csc(b*x)") // funcao predefinida stroke = "red"; strokedasharray = null a=2;b=1;c=1 // <=== plot("a*csc(b*x)") // funcao predefinida endagraph |
| Curvas cotangentes, i.e., gráficos de equações trigonométricas do tipo `y = a*cot(x+c)`. O valor de `|a|` é denominado amplitude e `c` é o ângulo fase. |
setBorder(10); initPicture(-5,5.01) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=1;c=2 // <=== plot("a*cot(x+c)") // a função predefinida stroke = "red"; strokedasharray = null a=2;c=1 // <=== plot("a*cot(x+c)") // a função predefinida |
agraph setBorder(10); initPicture(-5,5.01) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10,10" a=1;c=2 // <=== plot("a*cot(x+c)") // a função predefinida stroke = "red"; strokedasharray = null a=2;c=1 // <=== plot("a*cot(x+c)") // a função predefinida endagraph |
| Curvas exponenciais, i.e., gráficos de equações do tipo `y=ab^x+c`. |
setBorder(10) initPicture(-5,5) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=1;b=2;c=0 // <=== plot("a*b^x+c") // a função predefinida stroke = "red"; strokedasharray = null a=-1;b=2;c=0 // <=== plot("a*b^x+c") // a função predefinida |
agraph setBorder(10) initPicture(-5,5) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10,10" a=1;b=2;c=0 // <=== plot("a*b^x+c") // a função predefinida stroke = "red"; strokedasharray = null a=-1;b=2;c=0 // <=== plot("a*b^x+c") // a função predefinida endagraph |
| Funções logaritmicas, i.e., gráficos da equação `y = a*log_b(x)+c`. |
setBorder(10) initPicture(-5,5) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10" a=1/ln(10);c=0 // <=== plot("a*ln(x)+c") // log base 10 stroke = "red"; strokedasharray = null a=1;c=2 // <=== plot("a*ln(x)+c") // log base e |
agraph setBorder(10) initPicture(-5,5) axes(1, 1, "labels", "grid") stroke = "blue"; strokedasharray = "10,10" a=1/ln(10);c=0 // <=== plot("a*ln(x)+c") // log base 10 stroke = "red"; strokedasharray = null a=1;c=2 // <=== plot("a*ln(x)+c") // log base e endagraph |
| Definição condicional |
width=300; height=300; setBorder(10) initPicture(-2.5,2.5); axes(1,1,"labels","grid") strokewidth=2 //n=1 //<=== n="oo" // para ver o limite if (n=="oo") { stroke="blue" line([-2.5,-1],[0,-1]) line([2.5,1],[0,1]) dot([0,1],"open") dot([0,-1],"open") dot([0,0],"closed")} else { stroke="red" path([[-2.5,-1],[-1/n,-1],[1/n,1],[2.5,1]]) } |
agraph width=300; height=300; border=0;initPicture(-2.5,2.5); axes(1,1,"labels","grid") strokewidth=2; //n=1 //<=== n="oo" // para ver o limite if (n=="oo") { stroke="blue" line([-2.5,-1],[0,-1]) line([2.5,1],[0,1]) dot([0,1],"open") dot([0,-1],"open") dot([0,0],"closed")} else { stroke="red" path([[-2.5,-1],[-1/n,-1],[1/n,1],[2.5,1]]) } endagraph |
Traduzido de: