The hyperbolic curve is a little troublesome, because it is two lines, and in my program logic, rendering is only processing a line, so there will be extra lines in the graph, which is not very beautiful, let me solve it later. in addition, the vertex on the hyperbolic curve is easy to be too large, resulting in invalid floating point numbers, which also requires special processing.
Hyperbolic (East-West opening)
vertices = 12000t = from 0 to (2*PI)a = rand2(0.1, 10)b = rand2(0.1, 10)x = a*sec(t)y = b*tan(t)x = limit(x, -50, 50)y = limit(y, -50, 50)
Hyperbolic (North-South opening)
vertices = 12000t = from 0 to (2*PI)a = rand2(0.1, 10)b = rand2(0.1, 10)x = a*tan(t)y = b*sec(t)x = limit(x, -50, 50)y = limit(y, -50, 50)
Hyperbolic 2 (East-West opening)
vertices = 12000t = from (-2*PI) to (2*PI)a = rand2(0.1, 10)b = rand2(0.1, 10)x = a*cosh(t)y = b*sinh(t)x = limit(x, -50, 50)y = limit(y, -50, 50)
Hyperbolic 2 (North-South opening)
vertices = 12000t = from (-2*PI) to (2*PI)a = rand2(0.1, 10)b = rand2(0.1, 10)x = a*sinh(t)y = b*cosh(t)x = limit(x, -50, 50)y = limit(y, -50, 50)
Conical hyperbolic
vertices = 12000t = from 0 to (2*PI)e = rand2(1, 8)p = rand2(0, 10)r = e*p / (1 - e*cos(t))x = r*sin(t)y = r*cos(t)x = limit(x, -25, 25)y = limit(y, -25, 25)
Cartesian hyperbolic
vertices = 2000x = from -20 to 20y = 1/xy = limit(y, -20, 20)