Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Dibujar en c++

Estas en el tema de Dibujar en c++ en el foro de C/C++ en Foros del Web. Hola, Estoy haciendo un programa donde se hace la programación de tareas (schedule), y me gustaría hacer los famosos diagramas de gantt, adjunto una imagen ...
  #1 (permalink)  
Antiguo 24/07/2014, 22:22
 
Fecha de Ingreso: junio-2014
Mensajes: 144
Antigüedad: 10 años, 4 meses
Puntos: 1
Dibujar en c++

Hola,

Estoy haciendo un programa donde se hace la programación de tareas (schedule), y me gustaría hacer los famosos diagramas de gantt, adjunto una imagen de lo que quiero hacer:



Se puede hacer algo así en c++, cabe mencionar que sólo he manejado programación en consola, no se si se puede abrir otra ventana donde se pueda hacer estos gráficos. Manejo windows 8 por cierto, no se si sea importante.

Gracias!!!!
  #2 (permalink)  
Antiguo 24/07/2014, 23:15
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 11 años, 1 mes
Puntos: 38
Respuesta: Dibujar en c++

Con miniwin puedes hacer gráficos sencillos como lineas cuadrados círculos y muchas otras cosillas.
Es una librería echa por un grande programador llamado pauek.
http://miniwin.readthedocs.org/en/latest/

Aquí tiene una breve explicación sobre sus funciones:
http://miniwin.readthedocs.org/en/la...ilizacion.html

Y ademas el nos brinda unos cuantos videos y ejercicios para aprender a manejar.
Introducion:
http://www.minidosis.org/#/temas/Juegos.MiniWin

Un snake muy sencillo:
http://www.minidosis.org/#/temas/Juegos.Snake

Un tetris:
http://www.minidosis.org/#/temas/Juegos.Tetris

Y un Asteroids:
http://www.minidosis.org/#/temas/Juegos.Asteroids

¿Por que te pego esos videos?

Por que esta librería esta pensada para juegos pero la puedes adaptar a tu uso fácilmente aprendiendo solamente a hacer los dibujos sin la mecánica de juego, pero si te interesa la mecánica mas aprenderás ;)

Es de las mas facilitas que he visto.
Algo tan sencillo como hacer vredimensiona(200, 200); para re dimensionar una ventana a 200x200.

linea(0, 0, 100, 100); para crear una linea de las coordenadas x0/y0 a x100/y100

Puedes crear una estructura con 4 lineas y tendrás una cuadrado, pero mas fácil es que tiene funciones para eso:

Mira mejor te muestro un código....
El siguiente código:
Código C++:
Ver original
  1. #include "miniwin.h"
  2. using namespace miniwin;
  3.  
  4. int main() {
  5.   vredimensiona(200, 200);
  6.   linea(0, 0, 100, 100);
  7.   color(AZUL);
  8.   rectangulo(10, 10, 50, 50);
  9.   color(ROJO);
  10.   circulo(100, 50, 20);
  11.   color(AZUL);
  12.   circulo_lleno(50, 100, 20);
  13.   color(VERDE);
  14.   rectangulo_lleno(50, 50, 100, 100);
  15.   refresca();  
  16. }

...muestra eso en pantalla



como puedes ver es solo aprender lo de las coordenadas (lugar donde se va pintar las lineas, círculos, rectángulos....) y el resto son funciones muy fáciles de aprender ya que incluso todo es en español.

Es muy potente y no creo que encuentres nada mejor o al menos mas fácil.

Hay otra librería que es incluso mejor pero ni por asomo mas fácil que es SFML.
Con SFML puedes mostrar imágenes con transparencias y mil cosas mas XD

La librería miniwin tiene funciones para teclado y ratón.
Mejor mira los vídeos y así te familiariza con la librería.

la puedes descargar de aquí, en la parte de instalación rápida: http://miniwin.readthedocs.org/en/latest/#

Para codeblocks es solo un proyecto y no necesitas nada mas, si usas otro ide también esta las instrucciones.

Suerte y espero que te sirva.
  #3 (permalink)  
Antiguo 25/07/2014, 03:46
Avatar de jc_moj  
Fecha de Ingreso: septiembre-2009
Ubicación: Andalucía
Mensajes: 137
Antigüedad: 15 años, 2 meses
Puntos: 12
Respuesta: Dibujar en c++

Cita:
Iniciado por vangodp Ver Mensaje
Con miniwin puedes hacer gráficos sencillos como lineas cuadrados círculos y muchas otras cosillas.
Es una librería echa por un grande programador llamado pauek.
Además bien explicado, merece la pena verse los vídeos de C++, un crack.

Cita:
Iniciado por vangodp Ver Mensaje
Hay otra librería que es incluso mejor pero ni por asomo mas fácil que es SFML.
Con SFML puedes mostrar imágenes con transparencias y mil cosas mas XD
Junto con SFML también están Allegro y SDL, que después de no sé cuantos años recientemente sacó la versión 2.

Pero estas tres son más complejas y en principio orientadas al desarrollo de juegos.

Saludos
  #4 (permalink)  
Antiguo 25/07/2014, 04:28
 
Fecha de Ingreso: junio-2014
Mensajes: 144
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: Dibujar en c++

Hola a todos. Primero totalmente de acuerdo, aprendí c++ en gran medida a este foro y a los videos de pauek.

Cita:
Iniciado por jc_moj Ver Mensaje
Además bien explicado, merece la pena verse los vídeos de C++, un crack.

Junto con SFML también están Allegro y SDL, que después de no sé cuantos años recientemente sacó la versión 2.

Pero estas tres son más complejas y en principio orientadas al desarrollo de juegos.

Saludos
Es exactamente lo que necesito, sin embargo uso el compilador visual studio y me da un problema de compilación, me he tratado de comunicar el pauek ojalá me pueda responder.

Adjunto el primer problema que obtuve al seguir el manual de miniwin (gracias a los enlaces de vangodp).



Alguien lo ha usado en visual studio?

Saludos
  #5 (permalink)  
Antiguo 25/07/2014, 08:10
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 11 años, 1 mes
Puntos: 38
Respuesta: Dibujar en c++

Cita:
Iniciado por jc_moj Ver Mensaje
Además bien explicado, merece la pena verse los vídeos de C++, un crack.



Junto con SFML también están Allegro y SDL, que después de no sé cuantos años recientemente sacó la versión 2.

Pero estas tres son más complejas y en principio orientadas al desarrollo de juegos.

Saludos
Si también es verdad "SDL Y ALLEGRO" =)
Si el quiere algo rápido creo que miniwin esta chupado, pero si quiere mas funcionalidades pues esos otros son mejores opciones.
Eso si... si es C++ mejor SFML, y si es C mejor SDL.
No voy decir nada de Allegro por que la desconozco por completo pero si es una opción.
  #6 (permalink)  
Antiguo 25/07/2014, 08:43
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 11 años, 1 mes
Puntos: 38
Respuesta: Dibujar en c++

No lo había visto lo del error.
Es que esas librerías son para GCC.
Creo que puedes instalar dicha lib en visual studio pero la verdad ni idea.
A visual studio no le gusta otras libs ya que microsoft es muy dueño de lo suyo y no creo ese programa para que usen en otras plataformas.
Si ves que no te va prueba una de las otras pero advierto que no son muy sencillas.

Es que visual studio se lleva de tortas con otras libs.
Puedes probar yo que se Opengl.
¿De verdad necesitas usar visual studio?
Lo siento no poder ayudar mas es que no uso VS.
Si consigues instalar SFML sobre VS te puedo echar una mano si lo necesitas.
En la pagina dice que permite Visual C++ 11 (2012): http://www.sfml-dev.org/download/sfml/2.1/
Si consigues ponerla te echo un cable para sacar esas lineas ;)
  #7 (permalink)  
Antiguo 25/07/2014, 12:20
 
Fecha de Ingreso: junio-2014
Mensajes: 144
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: Dibujar en c++

Hola, he hecho funcionar el miniwin de pauek en visual studio, cambiando la configuración unicode, y dando un "enter" en un parte de código donde se unían un comentario con un for. Y el proyecto es de win 32 aplicación para windows. (Sí hay algún interesado que comente con más detalle que me avise).

La pregunta ahora es como hacer los output en esta aplicación para windows win 32, es decir no sólo los dibujos sino, por ejemplo, usar los típicos "cout << " o algo así. Es más a mi me gustaría que salga la ventana de windows con los dibujos y una ventana de consola donde este el resto.

Alguna idea?, Muchas gracias.
  #8 (permalink)  
Antiguo 25/07/2014, 13:49
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 11 años, 1 mes
Puntos: 38
Respuesta: Dibujar en c++

Si puedes explicar detalladamente como has echo por si encarta que alguien mas pregunte siempre es bueno. =)
Sobre lo de texto.. supongo que tienes que crear una aplicación de consola. Entonces se te abrirá la consola y la ventana gráfica.
Si usas cout efectivamente eso va salir en la ventana de consola.
Para escribir en la ventana grafica de miniwin debes usar la funcion
texto(152, 142, "Hola, MiniWin!");
donde 152 y 142 son las coordenadas de la pantalla(lugar donde se va mostrar el texto)
Código C++:
Ver original
  1. #include "miniwin.h"
  2. using namespace miniwin;
  3.  
  4. int main()
  5. {
  6.     //Eso re dimensiona la ventana
  7.     vredimensiona(400, 300);
  8.  
  9.     //Eso pinta un rectángulo en vuelta al texto
  10.     rectangulo(100, 100, 300, 200);
  11.  
  12.     //Eso imprime en las coordenadas el texto "Hola, MiniWin!"
  13.     texto(152, 142, "Hola, MiniWin!");
  14.  
  15.     //llama a la función refresca para mostrar el resultado de los cambios(refrescar la pantalla)
  16.     refresca();
  17.     return 0;
  18. }

Eso imprime eso:
  #9 (permalink)  
Antiguo 27/07/2014, 13:42
 
Fecha de Ingreso: junio-2014
Mensajes: 144
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: Dibujar en c++

Gracias vangodp, ya solucione el problema, ahora voy a comentar como hice funcionar miniwin en visual studio, primero lo que se necista es crear una solución de tipo aplicación para windows win 32, luego seguir las instrucciones brindadas en [URL="http://miniwin.readthedocs.org/en/latest/"]http://miniwin.readthedocs.org/en/latest/[/URL] pagina ofical del miniwin de pauek, el creador.

Los arreglos que debes hacer en la versión actual de miniwin 0.2.2 son, ir a proyecto >> propiedades de "nombre de tu archivo">> propiedades de configuración (para desplegar más propiedades) >> general y dentro de esta sección encontrarás dos sub secciones otro general y un valores predeterminados del proyecto, te vas a la segunda, y pones la opción de Juego de Caracteres = Utilizar juego de caracteres multibyte.

Luego en la versión 0.2.2 debes ir al miniwin.cpp, en la linea 265 más o menos, encontraras un comentario así:

Código C++:
Ver original
  1. // Teclas de funci󮍊 for (unsigned int i = 0; i < 10; i++) {

Debes poner un enter (paso de linea) antes del for quedando así:
Código C++:
Ver original
  1. // Teclas de funci󮍊
  2. for (unsigned int i = 0; i < 10; i++) {

y a disfrutar.

El programa que quería hacer ya lo tengo hecho. Les dejo una muestra:



Gracias y saludos.
  #10 (permalink)  
Antiguo 27/07/2014, 15:57
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 11 años, 1 mes
Puntos: 38
Respuesta: Dibujar en c++

Se ha quedado muy bueno =)
Si no fuera por la configuración seria muy rápido pero al menos has dado en el clavo XD
Si vas a graficar muchas veces te sugiero que aprendas SFML.
Es de las mejores que hay para eso.
Una cosa que podías hacer es dibujar eso en photoshop y simplemente mostrar la imagen en pantalla o hacerlo con lineas si te apetece pero realmente te ha quedado estupendo.
Mucha suerte y gracias por compartir la info. Voy a tomar nota por si alguien pregunta y tiene el mismo problema que tu =).
Suerte!

Etiquetas: c++, dibujo
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 10:05.