![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#13
|
||||
|
||||
|
Graficar una ecuacion cuadratica
Bueno, como no tenia nada que hacer, programe un pequeño procedimiento que grafica una funcion cuadratica.
Simplemente se crea un form, se ponen 5 edits, un TImage y un boton. Nombrar los Edits de la siguiente manera: Edita,Editb,Editc,EditEscalax,EditEscalay y a la imagen le puse nombre: Hoja En el OnClick del boton pegar el siguiente codigo: Código:
procedure TForm1.Button1Click(Sender: TObject); var a,b,c,escx,escy,x,fx: Real; origenx,origeny,i: integer; begin a:= StrToFloat(Edita.Text);//convierto los edits en numeros b:= StrToFloat(Editb.Text); c:= StrToFloat(Editc.Text); escx:= StrToFloat(EditEscalax.Text); escy:= StrToFloat(EditEscalay.Text); with Hoja.Canvas do //Hoja es una TImage en este caso begin origenx:= Trunc(Hoja.Width/2); //establezco el origen (0,0) en la mitad de la hoja origeny:= Trunc(Hoja.Height/2); MoveTo(origenx,0); //dibujo los ejes LineTo(origenx,Hoja.Height); MoveTo(0,origeny); LineTo(Hoja.Width,origeny); for i:= 0 to Hoja.Width do //genero el grafico en todo el ancho de TImage begin x:= -escx + 2*escx*i/Hoja.Width; // simplemente observar los valores extremos de i fx:= a*x*x + b*x + c; // fx es el valor de la ecuacion en el punto x, esta claro if i = 0 then //La primera vez solo muevo MoveTo(0,Trunc(origeny - fx*origeny/escy)) else LineTo(i,Trunc(origeny - fx*origeny/escy)); end; end; end; En EditEscalax y EditEscalay pondremos los rangos que queremos visualizar, para los ejes x e y respectivamente. Como se ve, no es muy dificil, ya que el programa ocupa tan solo una pantalla y claro que es mejorable a gusto del consumidor Bueno, espero que sirva para algo. PD: ingresando cero en "Edita", tendremos una ecuacion lineal PD2: podemos cambiar la linea: fx:= a*x*x + b*x + c; por la funcion que deseemos, por ej fx:= sin(x); funciona a la perfección. Última edición por dchaparro fecha: 19-05-2004 a las 02:24:52. Razón: Error en una linea del codigo |
|
|
|