Implicit Curve display bug or glitch

Constantinos shared this problem 1 month ago
Not a Problem


I am facing a strange behavior when sketching implicit curves. The graphs are not displayed properly, and the display changes when zooming in or out, or when changing the value of a slider or when shifting the graphics view.

See attached screenshots 1, 2 and 3.

As may see, the green graph has an unexplained gap in the first two screenshots.

The red and the green graphs, not only have unexplained gaps, but they also look like they are not symmetrical to the y axis, despite that they really are symmetrical.

Also, when the value of the slider is changed, this is not properly displayed in the red graph's domain.

I am using GeoGebra 5 Classic v5.0.591.0-d (23 June 2020) on a Windows 7 64bit Ultimate machine with ESU security updates, on a Ryzen 2600x CPU with 32 GB RAM and a GTX1080Ti GPU. I also tried the GeoGebra online calculator and the glitches were reproduced, as seen in screenshot 4.

I also attach the test file for your reference and I appreciate any input.

Comments (10)


I think the Curve() command is more appropriate for those, and will give a better result


I am aware of the curve command; the problem with it is that it is not always easy to parametrize an implicit function, and what is more, to parametrize the range and the domain as well. Even if it can be done, it requires far more algebraic work that makes the task more difficult and inaccessible for the average high school student.


Sure, both methods have compromises


I also noticed that if I place 2-3 implicit functions, GeoGebra slows down considerably. Perhaps there is an issue with the algorithm/programming of implicit functions. This becomes a problem for the specific assignment my students had been working on, which involves using mathematical relations to sketch a cartoon character. I don't want them to switch to Desmos (I dislike Desmos myself, but unfortunately most students think it has an easier learning curve), so if the implicit function graphing could be improved on GeoGebra, that would be awesome.

Thank you for your time.


precisamente por esa dificultad la renderizacion de las curvas implicitas es más dificil para GG, además de la dificultad de esperar una salida inmediata

en este foro se sugirió poder usar un truco que parece mejorar el resultado. el truco es usar funciones de dominio restringido en lugar de condiciones

en el adjunto un ejemplo

otra cuestion es que en text3 sobra el 0.5

Files: foro.ggb

Hi mathmagic, thank you for your reply.

It's really a nice trick to use functions with implied domain, and it does work better, but it is still problematic. The gap in the middle is gone, but there are still gaps when the graphs approach x=±5.


I wasn't sure what you mean by text3 with regards to 0.5. Is it the following question?

"No dibuja las líneas que tienden al infinito"

If it is indeed, you mean that Geogebra's implicit function is kinda of limited functionality, right? Is this something that could be addressed by the developers?

Anyway, despite that this makes sense in the question you quoted, because of the infinity issue, in the examples of mine there is no infinity involved, unless the algorithm GeoGebra uses assumes that the lines x=±5 act as asymptotes.


creo que el proceso localiza un conjunto de puntos en la curva y luego los une con segmentos

creo que la diferencia está en que if(condicion,curva) primero comprueba la condicion y luego hace el calculo mientras que el truco lo hace al revés. no sé si es así pero sería una explicación. Por lo mismo la distancia entre los valores de x que se calculan depende de la ventana y sus esquinas. Si GG usa x0,x1,x2,x3,x4 etc y x3<-5 y x4>-5 el trozo entre -5 y x4 no es dibujado. creo que no es posible resolver esto para cualquier circunstancia pero lo intentaré averiguar


What is really weird, is that even using your trick, the sketch changes when the zoom level changes.

In the following 2 screenshots, it is exactly the same relation, under a different zoom level.



Maybe GeoGebra has an embedded "smart cutter" that decides what to sketch, according to the zoom level or some other undisclosed limitations.


I also tried a different syntax, such as the following:

y² = If(y ≥ 0 ∧ -5 ≤ x < 5, 36 - x²)

I still got the same problem.

Even If I limit the condition to a single one and express it using the "trick", I still get the same issues.

x² + y² = 36 + 0sqrt(k - x)

Notably, If I zoom in and out, eventually there is a certain zoom level that makes the graph look correct.

I attach the different relations I tried; the ggb file doesn't like many implicit relations and it has become very slow, even if not all functions are drawn at the same time (maybe the function values are automatically calculated, even if not displayed at the same time; perhaps this is something that could be adjusted by some setting?)

Last but not least, I am quite confused by this following issue (see screenshot):

I input

ImplicitCurve(If(y ≥ 0, If(-k ≤ x ≤ k, y² + x² - 36)))

but in the algebra window I see

ImplicitCurve(If(x ≥ 0, If(-k ≤ x ≤ k, y² + x² - 36)))



I tried both Graph 4.4.2 (which is an ancient app with no updates since 2012!) and Desmos, and no issue there.

If any GeoGebra devs see this, I guess you guys have to keep up with the competition and fix this annoying bug.



© 2020 International GeoGebra Institute