Foros del Web » Programando para Internet » PHP »

Anemómetro y veleta

Estas en el tema de Anemómetro y veleta en el foro de PHP en Foros del Web. Hola a todos !! Estaba interesado en realizar mediante unas variables que tengo un gráfico que simule un anemómetro y una veleta en php. Sujerencias ...
  #1 (permalink)  
Antiguo 27/04/2011, 09:30
 
Fecha de Ingreso: febrero-2008
Mensajes: 102
Antigüedad: 16 años, 2 meses
Puntos: 0
Anemómetro y veleta

Hola a todos !!

Estaba interesado en realizar mediante unas variables que tengo un gráfico que simule un anemómetro y una veleta en php.

Sujerencias ??

Mil gracias y saludos !!
  #2 (permalink)  
Antiguo 27/04/2011, 11:16
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Anemómetro y veleta

Puedes pensarlo en diseñar varias imagenes de dierentes angulos y mostrar la imagen de acuerdo a los valores indicados.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 27/04/2011, 11:19
 
Fecha de Ingreso: febrero-2008
Mensajes: 102
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Anemómetro y veleta

Había pensado en algo de eso, a lo mejor para la veleta puede valer pero para el anemómetro no porque habría demasiadas posibilidades.

Otra idea era con alguna librería de gráficas o algo parecido, pero no se.

Gracias de todas formas.
  #4 (permalink)  
Antiguo 27/04/2011, 11:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Anemómetro y veleta

Bueno puedes trabajar con la librería GD pero no sé que tan complicado pueda ser.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 27/04/2011, 11:58
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Anemómetro y veleta

así es, lo que no entiendo es como quieres hacer esas imágenes, por que un anemómetro gira, tendrías que hacer un gif animado con diferentes velocidades, en cuanto a la veleta es mas posible con GD como dice abismael, te escribo las funciones básicas para lograrlo:

Código PHP:
Ver original
  1. int image=imagecreate(int ancho, int alto);
  2. int image=imagecreatefrompng(string archivo);
  3. int color=imagecolorallocate(int image, int rojo, int verde, int azul);
  4. imageline(int image,int x origen,int y origen, int x destino, int x destino, int color);
  5. imagepng(int image,[string archivo si quieres guardarla]);
  #6 (permalink)  
Antiguo 27/04/2011, 12:02
 
Fecha de Ingreso: febrero-2008
Mensajes: 102
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Anemómetro y veleta

Hola, la idea de la veleta si más o menos la tengo clara pero el anemómetro me gustaría que fuera como por coordenadas o grados de una circunferencia.

Saludos
  #7 (permalink)  
Antiguo 27/04/2011, 12:05
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Anemómetro y veleta

podrías hacer un paint para entenderte?

coordenadas o grados son términos muuuuy relativos...
  #8 (permalink)  
Antiguo 27/04/2011, 12:09
 
Fecha de Ingreso: febrero-2008
Mensajes: 102
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Anemómetro y veleta

Un paint ??
  #9 (permalink)  
Antiguo 27/04/2011, 12:21
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Anemómetro y veleta

paintbrush, mspaint, una imagen, si quieres la haces en photoshop XD

la idea es que explique gráficamente tu idea, con palabras es mas complicado, sobretodo por que queremos crear imágenes.
  #10 (permalink)  
Antiguo 04/05/2011, 04:38
 
Fecha de Ingreso: febrero-2008
Mensajes: 102
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Anemómetro y veleta

Algo parecido ha esto es lo que quiero hacer ... http://wiki.meteohub.de/Dashboards

Gracias y saludos !!
  #11 (permalink)  
Antiguo 04/05/2011, 07:53
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Anemómetro y veleta

Ah, ok, se puede pero sin animaciones, si quieres animaciones mejor hazlo en flash.

si de círculos se trata la función para hacerlos es:

imageellipse($img,centro X,centro Y,Ancho,Alto,Color);

pero si no quieres el circulo completo si no solo una parte es:

imagearc($img,centro X,centro Y,Ancho,Alto,Inicio,Final,Color);

para hacer puntos o lineas relativas a un circulo necesitas 2 funciones trigonométricas, seno y coseno, no necesitas mas, pero recuerda que las funciones de PHP no operan con grados si no con radianes, pero PHP tiene su función para convertir de grados a radianes:

imageline($img,cos(deg2rad(grado))*distancia+Centr o X, sin(deg2rad(grado))*distancia+Centro Y, cos(deg2rad(Grado))*Largo+Centro X, sin(deg2rad(grado))*distancia+Centro Y,$black);

Para hacer barras como esa existen 2 tipos de rectangulo, los que son solo el borde y los que son relleno, utiliza ambos para crear un medidor:

imagefilledrectangle($img,Inicio X,Inicio Y,Final X,Final Y,Color); //relleno
imagerectangle($img,Inicio X,Inicio Y,Final X,Final Y,Color); //borde

puedes poner otras imágenes como fondo o para adornar en tu imagen usando

imagecopy($img,$mi_png,Ubicacion X,Ubicacion Y,Fuente X,Fuente Y,Fuente Ancho,Fuente Alto); // copia una imagen fuente en el destino
imagecopyresized($img,$mi_png,Ubicacion X,Ubicacion Y,Fuente X,Fuente Y,Destino Ancho,Destino Alto,Fuente Ancho,Fuente Alto); // copia una imagen y la redimensiona.

Por ultimo GD2 tiene varias herramientas de texto, te pongo aquí las 2 básicas:

imagestring($img,Fuente,X,Y,"Texto",Color); // Escribe texto
imagestringup($img,Fuente,X,Y,"Texto",Color); // Escribe texto hacia arriba

para que entiendas mejor, prueba este ejemplo en un archivo PHP nuevo (vacío):

Código PHP:
Ver original
  1. <?php
  2. header("Content-Type: image/png");
  3. $img=imagecreate(600,600);
  4. $white=imagecolorallocate($img,255,255,255);
  5. $black=imagecolorallocate($img,0,0,0);
  6. $gray=imagecolorallocate($img,128,128,128);
  7. $red=imagecolorallocate($img,255,0,0);
  8. $green=imagecolorallocate($img,0,255,0);
  9. $blue=imagecolorallocate($img,0,0,255);
  10. imageellipse($img,100,100,150,150,$black);
  11. imagearc($img,300,100,150,150,180,360,$black);
  12. for($f=180;$f<=360;$f+=15){
  13.     imageline($img,cos(deg2rad($f))*70+500,sin(deg2rad($f))*70+100,cos(deg2rad($f))*75+500,sin(deg2rad($f))*75+100,$black);
  14.     imagestringup($img,0,cos(deg2rad($f))*80+497,sin(deg2rad($f))*80+100,$f,$black);
  15. }
  16. imagefilledrectangle($img,70,250,90,450,$gray);
  17. imagefilledrectangle($img,70,400,90,450,$red);
  18. imagerectangle($img,70,250,90,450,$black);
  19. imagefilledrectangle($img,100,250,120,450,$gray);
  20. imagefilledrectangle($img,100,350,120,450,$green);
  21. imagerectangle($img,100,250,120,450,$black);
  22. imagefilledrectangle($img,130,250,150,450,$gray);
  23. imagefilledrectangle($img,130,300,150,450,$blue);
  24. imagerectangle($img,130,250,150,450,$black);
  25. imagestring($img,0,100,100,"circulo",$black);
  26. imagestringup($img,0,300,100,"circulo",$black);
  27. for($f=0;$f<=200;$f+=10){
  28. imagestring($img,0,50,450-3-$f,$f."°",$black);
  29. }
  30. imagepng($img);
  31. ?>
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:37.