Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-05-2004
DarkFilter DarkFilter is offline
Registrado
 
Registrado: nov 2003
Posts: 6
Poder: 0
DarkFilter Va por buen camino
Un componente bastante bueno para graficar funciones es el RChart de <a href="http://www.lohninger.com/sdlindex.html">SDL Component Suite</a>, es muy fácil de usar. El problema, que si lo quieres completo lo debes comprar...sin embargo lo puedes descargar y te queda 100% operativo (obviamente no incluye el código fuente) con el "detalle" que cada vez que pasas el mouse por el componente aparece un hint que te dice que no está registrado.

Última edición por DarkFilter fecha: 01-05-2004 a las 08:27:49.
Responder Con Cita
  #2  
Antiguo 19-05-2004
Avatar de dchaparro
dchaparro dchaparro is offline
Registrado
 
Registrado: abr 2004
Ubicación: La Plata, Argentina
Posts: 9
Poder: 0
dchaparro Va por buen camino
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;
Esta funcion, grafica en la imagen una ecuacion cuadratica ax2+bx+c, donde a, b y c son los valores cargados en Edita,Editb y Editc.
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
Responder Con Cita
  #3  
Antiguo 03-06-2004
erickpch erickpch is offline
Miembro
 
Registrado: may 2003
Ubicación: La Paz - Bolivia
Posts: 32
Poder: 0
erickpch Va por buen camino
Bueno si quieres un componente "simpatico" para tus necesidades vasta y sobra el XYGraph buscalo en Torry, es sencillo permite hacer zoom, introducir en el mismo gráfico rótulos, marcas, graficar n funciones a la vez y puedes exportar tu gráfico a dxf, es free mientras sea para uso académico. El codigo esta disponible y puedes modificarlo si necesitas, por ejemplo el original no tiene un método de impresión pero yo le agregue uno, en fin te lo recomiendo..
__________________
==========================
[email protected]
"No existe código perfecto, solo más adecuado" (B) :)
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 09:45:12.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi