grap_creator [UDF] crea tus graficas de manera sencilla

y programas personales para otros como tu, puede que te corrijan ;)
Responder
xapu
Hacker del Foro
Mensajes: 82
Registrado: 12 Dic 2009, 15:42

grap_creator [UDF] crea tus graficas de manera sencilla

Mensaje por xapu »

hola a todos!! :smt003
pues os presento mi udf.. que a salido de la necesidad que tenia de una udf de este tipo, ya que la mayoría de mis programas se basan en representar información de estas maneras :P
quizas deberia haber buscado antes.. ya que he encotnrado que ya existe alguna como por ejemplo: http://www.autoitscript.com/forum/topic ... ed-141009/
aunque la mia me es mas util en la mayoria de los aspectos. ademas aun le queda añadir alguna cosa

yo básicamente el uso que le doy es el de representación de magnitudes físicas respecto a tiempo o a otras magnitudes.
una vez que creas la gráfica y le as dado los mínimos y máximos de la gráfica, cuando le das valores, no tienes que darle las x/y respecto a la interfaz, si no los valores reales...

por ejemplo... si tienes una gráfica temperatura(y)/tiempo(x)
y le as dado un mínimo de tª de -15º y un máximo de 40º, tu solo tienes que poner en el punto la tº, da igual cual sea el tamaño de la gráfica, o las separaciones.
creo que lo mejor para entenderlo es ver los ejemplos :smt012 por que ya veis que no me explico muy bien..

funciones y descripción de cada una:
create_grap($Form,$x,$y,$width,$height,$xsep,$ysep,$minx,$maxx,$miny,$maxy,$color1 = 0xAA000000,$color2 = "",$marc = 0,$marcgros = 2)

es la funcion principal, nos devolverá una array (es el handle para usar la grafica)

$form hace referencia al form en el que se quiere crear
$x posicion x
$y posicion y
$width anchura de la grafica
$height altura de la grafica
$xsep numero de subdivisiones en el eje x de la malla
$ysep numero de subdivisones en el eje y de la malla
$minx valor minimo de x que puede llegar a representarse en la grafica
$maxx valor maximo de x que puede llegar a representarse en la grafica
$miny valor minimo de y que puede llegar a representarse en la grafica
$maxy valor maximo de y que puede llegar a representarse en la grafica
$color1 color que tendran las subdivisiones x de la malla (en caso de que no se le de un valor a $color2, las subdivisiones de y seran de este mismo color)
$color2 color que tendran las subdivisiones y de la malla
$marc color que tendra el marco de la grafica(en caso de no darle un valor, no habra marco)
$marcgros grosor del marco de la grafica

grap_element_create($graph,$color,$gros)

usaremos esta funcion para crear un elemento para poder usar en la grafica, nos devuelve una array

$graph es la array o handl de la grafica
$color color de el elemento
$gros grosor que este elemento va a tener

add_point(ByRef $element,$x,$y)

usaremos esta funcion para ir dando valores a la grafica.
necesitaremos haber creado previamente un elemento para poder usarla. a partir de los puntos, se ira creando una linea(los elementos no admiten discontinuidad)

$element array que nos devuelve la funcion grap_element_create
$x punto x de la grafica
$y punto y de la grafica

grap_abcise_separation($graph,$color,$gros,$param)

separa la grafica de lado a lado de y y de lado a lado de x
$color color de las lineas de separacion
$gros grosor de las lineas de separacion
si el parametro $param esta en 1 la separacion pasara por los puntos medios de los minimos i maximos
si el parametro $param esta en 2 la separacion pasara por el eje de coordenadas(osea por x=0 y y=0)


$graph hndl de la grafica
$color color que tendrán las lineas de separación de los ejes


ToDo:
-añadir la posibilidad de crear tooltips al hacer clic en un punto de la gráfica en el que te indique el valor de los dos componentes
-mejorar la manera de eliminar las graficas :$
-posibilidad de guardar las graficas como imagen
-indicar unidades de cada componente
-posibilidad de crear elementos moviles
Adjuntos
grafic.rar
(2.02 KiB) Descargado 241 veces
- 0 error(s), 0 warning(s) :smt098 FUCK YEA!
http://xapus.blogspot.com/
jamaro
Hacker del Foro
Mensajes: 253
Registrado: 03 Nov 2010, 23:04

Re: grap_creator [UDF] crea tus graficas de manera sencilla

Mensaje por jamaro »

Interesante uso de GDIPlus... habrá que estudiar el código.

¡Gracias!
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2085
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: grap_creator [UDF] crea tus graficas de manera sencilla

Mensaje por BasicOs »

;)
Gracias por el aporte
Salu22:)
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: grap_creator [UDF] crea tus graficas de manera sencilla

Mensaje por Chefito »

Está bien ;).

Ahora fallos.
Corrige el refresco de la gráfica cuando mueves la ventana fuera del escritorio. No se redibuja.
Cuando muevo la 2º ventana y la suelto, la gráfica pega saltos y valores raros.

Por cierto, en el ejemplo has incluído la udf CommMG.au3. No la incluyes en el archivo comprimido. Creo que no la utilizas. La deberías de quitar.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
xapu
Hacker del Foro
Mensajes: 82
Registrado: 12 Dic 2009, 15:42

Re: grap_creator [UDF] crea tus graficas de manera sencilla

Mensaje por xapu »

la verdad esque poco a poco me van saliendo bastantes fallos ^^" me dedicare a arreglarlos antes de añadirle mas cosas jeje
para hacer lo de refrescarla... hay algun post por hay que lo explique medianamente bien? es que la verdad.. no manejo nada gdi+..
por cierto.. ya que nadie me responde aqui..http://www.emesn.com/autoitforum/viewto ... =12&t=3300
es posible borrar las lineas creadas con gdi+ sin eliminar todo?
- 0 error(s), 0 warning(s) :smt098 FUCK YEA!
http://xapus.blogspot.com/
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: grap_creator [UDF] crea tus graficas de manera sencilla

Mensaje por Chefito »

Hombre, con lo poco que se de gdi+ y demás, decirte que cualquier cosa, no solo tus líneas, se redibuja al realizar algún evento como por ejemplo ocultarlo y volver a mostrarlo. Asi que te tocará borrar y redibujar en muchas situaciones.
Si quieres hacer como un programa de dibujo, por ejemplo retroceder y quitar la última línea dibujada, esto supongo que lo tendrás que hacer por capas o guardando las posiciones de la gráfica (o fórmula de la gráfica) para redibujarla.

Pero según acabo de ver en tu otro post, deberás borrar y redibujar si quieres que te salga bien. Puede que pudieses moverla algo en el eje y sin que se viese nada raro, pero si la mueves en el eje x desaparecerá un trozo de gráfica por la derecha o por la izquierda, según restes o sumes a la x.
Aunque según veo tu gráfica, no debes tener ningún tipo de problema en borrarla y crearla de nuevo con algún valor cambiado. Se debería hacer muy rápido. Se supone que no se notaría nada.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Responder