Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ivan rios en 25 Noviembre 2017, 05:35 am



Título: graficador de funciones polinomicas en c.
Publicado por: ivan rios en 25 Noviembre 2017, 05:35 am
buen dia, alguien tendra el codigo de graficador de polinomios para ver si me lo comparte, o si alguien tiene la idea de como desarrollar este codigo me podria dar unas guias de como desarrollarlo, muchas gracias


Título: Re: graficador de funciones polinomicas en c.
Publicado por: Serapis en 25 Noviembre 2017, 20:31 pm
Básicamente debes tener unos conocimientos mínimos sobre matemáticas, el resto es luego ir dibujando el resultado a medida que se va generando.

Ejemplo para graficar la siguiente: "1 / cos(i) + j"


De entrada, (se supone) que queremos dibujar sobre el centro de la pizarra, no fuera de ella... así como en programación las cordenadas 0,0 se corresponde a la esquina superior izquierda, para desplazarlo al centro de la pizarra, debemos incrementar siempre la mitad del ancho y alto de la pizarra.
Código:
// variables desclaradas a  nivel de módulo:
entero ejeX, ejeY

// previamente calculamos el desplazamiento al centro de la pizarra.
// si cambia su tamaño debe actualizarse esto. esta función podría ser llamada desde un evento de cambio del tamaño de la pizarra...
funcion PizarraResize
    ejeX = (anchoPizarra /2)
    ejeY= (altoPizarra / 2)
fin función

Y aqui la función en pseudocódigo...
Código:
funcion Graficar(flotante i, flotante j, flotante paso, entero max, )
    flotante k, r, x, y

    bucle para k desde 0 To Max en pasos de paso
        si (Cos(i * k) <> 0) luego
            r = (1 / Cos(i * k) + j
            x = convertirAEntero( r * Cos(k))
            y = convertirAEntero(r * Sin(k))
            dibujarpixel (ejeX + x , ejeY + y, colorBlanco)
        fin si                  
    fin bucle
fin funcion

Aquí unas imágenes para ver el trazado con los siguientes parámetros:
Graficar(1, 1, 0.01, 200)
Graficar(1, 4.56, 0.01, 200)
Graficar(7, 1, 0.01, 200)
Graficar(7, 4.56, 0.01, 200)

(https://i.imgur.com/44O87Jz.png)