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

graphics.h - Cerrar modo gráfico y regresar a proceso normal del programa en consola

Estas en el tema de graphics.h - Cerrar modo gráfico y regresar a proceso normal del programa en consola en el foro de C/C++ en Foros del Web. Saludos. Ando manejando un programa que grafica unos datos que anteriormente el mismo programa calcula, por lo que he estado utilizando graphics.h, aunque me ha ...
  #1 (permalink)  
Antiguo 25/04/2011, 19:13
Dtc
 
Fecha de Ingreso: marzo-2011
Ubicación: México
Mensajes: 39
Antigüedad: 8 años, 8 meses
Puntos: 1
Pregunta graphics.h - Cerrar modo gráfico y regresar a proceso normal del programa en consola

Saludos.
Ando manejando un programa que grafica unos datos que anteriormente el mismo programa calcula, por lo que he estado utilizando graphics.h, aunque me ha aparecido un problema.
Le paso a la función los parámetros necesarios para trazar la gráfica y lo hace correctamente, pero el problema viene al intentar continuar con el programa, ya que al intentar regresar al modo consola y salir del modo de vídeo, me aparece una pantalla negra con un _ parpadeando y ya no puedo salir de esa pantalla completa y continuar con el programa de forma normal.
Por ejemplo, con este código:

Código C:
Ver original
  1. #include<graphics.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <dos.h>
  5.  
  6. void grafico(void);
  7. void hacergrafico1(float dominio1, float dominio2, float rango1, float rango2);
  8. float chale, nel, cor, jor;
  9.  
  10. main()
  11. {
  12. chale=-2;
  13. nel=4;
  14. cor=-3;
  15. jor=3;
  16. printf("presiona algo para seguirle");
  17. delay(300);
  18. hacergrafico1(chale, nel, cor, jor);
  19. printf("final");
  20. }
  21.  
  22. void grafico()
  23.           {
  24.                 int drive=DETECT,a,error;
  25.     initgraph(&drive,&a,"C:\\BC5\\BGI");
  26.     error=graphresult();
  27.     if (error != grOk)
  28.     {
  29.         printf ("Error al cargar modo grafico");
  30.         printf ("\nPresione una tecla para continuar");
  31.         system("pause");
  32.         exit(1);
  33.     }
  34.           }
  35.  
  36. void hacergrafico1(float dominio1, float dominio2, float rango1, float rango2)
  37.                  {
  38.  
  39. /*Convirtiendo los numeros de deminio y rango a pixeles y guardandolos en las variables para graficar*/
  40. int x1, y1, x2, y2;
  41. x1=dominio1*10+200;
  42. y1=rango1*-10+200;
  43. x2=dominio2*10+200;
  44. y2=rango2*-10+200;
  45. delay(200);
  46. /*Se dibuja el plano cartesiano graduado*/
  47.     /*Se invoca al modo gráfico */
  48. grafico();
  49. delay(200);
  50. /*Dibuja las 2 lineas del plano y el punto central*/
  51. line(200,0,200,400);
  52. line(0,200,400,200);
  53. putpixel(200,200,0);
  54. /*Dibuja la graduación de la linea derecha*/
  55. line(210,200,210,203);
  56. line(220,200,220,203);
  57. line(230,200,230,203);
  58. line(240,200,240,203);
  59. line(250,200,250,203);
  60. line(260,200,260,203);
  61. line(270,200,270,203);
  62. line(280,200,280,203);
  63. line(290,200,290,203);
  64. line(300,200,300,203);
  65. line(310,200,310,203);
  66. line(320,200,320,203);
  67. line(330,200,330,203);
  68. line(340,200,340,203);
  69. line(350,200,350,203);
  70. line(360,200,360,203);
  71. line(370,200,370,203);
  72. line(380,200,380,203);
  73. line(390,200,390,203);
  74. line(400,200,400,203);
  75. /*Dibuja la graduación de la linea izquierda*/
  76. line(190,200,190,203);
  77. line(180,200,180,203);
  78. line(170,200,170,203);
  79. line(160,200,160,203);
  80. line(150,200,150,203);
  81. line(140,200,140,203);
  82. line(130,200,130,203);
  83. line(120,200,120,203);
  84. line(110,200,110,203);
  85. line(100,200,100,203);
  86. line(90,200,90,203);
  87. line(80,200,80,203);
  88. line(70,200,70,203);
  89. line(60,200,60,203);
  90. line(50,200,50,203);
  91. line(40,200,40,203);
  92. line(30,200,30,203);
  93. line(20,200,20,203);
  94. line(10,200,10,203);
  95. line(0,200,0,203);
  96. /*Dibuja la graduación de la linea de arriba*/
  97. line(200,190,203,190);
  98. line(200,180,203,180);
  99. line(200,170,203,170);
  100. line(200,160,203,160);
  101. line(200,150,203,150);
  102. line(200,140,203,140);
  103. line(200,130,203,130);
  104. line(200,120,203,120);
  105. line(200,110,203,110);
  106. line(200,100,203,100);
  107. line(200,90,203,90);
  108. line(200,80,203,80);
  109. line(200,70,203,70);
  110. line(200,60,203,60);
  111. line(200,50,203,50);
  112. line(200,40,203,40);
  113. line(200,30,203,30);
  114. line(200,20,203,20);
  115. line(200,10,203,10);
  116. line(200,0,203,0);
  117. /*Dibuja la graduación de la linea de abajo*/
  118. line(200,210,197,210);
  119. line(200,220,197,220);
  120. line(200,230,197,230);
  121. line(200,240,197,240);
  122. line(200,250,197,250);
  123. line(200,260,197,260);
  124. line(200,270,197,270);
  125. line(200,280,197,280);
  126. line(200,290,197,290);
  127. line(200,300,197,300);
  128. line(200,310,197,310);
  129. line(200,320,197,320);
  130. line(200,330,197,330);
  131. line(200,340,197,340);
  132. line(200,350,197,350);
  133. line(200,360,197,360);
  134. line(200,370,197,370);
  135. line(200,380,197,380);
  136. line(200,390,197,390);
  137. line(200,400,197,400);
  138. /*Se escriben los numeros de graduacion en la barra derecha*/
  139. settextstyle(2,0,2);
  140. outtextxy(210, 205, "1");
  141. outtextxy(220, 205, "2");
  142. outtextxy(230, 205, "3");
  143. outtextxy(240, 205, "4");
  144. outtextxy(250, 205, "5");
  145. outtextxy(260, 205, "6");
  146. outtextxy(270, 205, "7");
  147. outtextxy(280, 205, "8");
  148. outtextxy(290, 205, "9");
  149. outtextxy(300, 205, "10");
  150. outtextxy(310, 205, "11");
  151. outtextxy(320, 205, "12");
  152. outtextxy(330, 205, "13");
  153. outtextxy(340, 205, "14");
  154. outtextxy(350, 205, "15");
  155. outtextxy(360, 205, "16");
  156. outtextxy(370, 205, "17");
  157. outtextxy(380, 205, "18");
  158. outtextxy(390, 205, "19");
  159. outtextxy(400, 205, "20");
  160. /*Se escriben los numeros de graduacion de la barra izquierda*/
  161. outtextxy(190, 205, "1");
  162. outtextxy(180, 205, "2");
  163. outtextxy(170, 205, "3");
  164. outtextxy(160, 205, "4");
  165. outtextxy(150, 205, "5");
  166. outtextxy(140, 205, "6");
  167. outtextxy(130, 205, "7");
  168. outtextxy(120, 205, "8");
  169. outtextxy(110, 205, "9");
  170. outtextxy(100, 205, "10");
  171. outtextxy(90, 205, "11");
  172. outtextxy(80, 205, "12");
  173. outtextxy(70, 205, "13");
  174. outtextxy(60, 205, "14");
  175. outtextxy(50, 205, "15");
  176. outtextxy(40, 205, "16");
  177. outtextxy(30, 205, "17");
  178. outtextxy(20, 205, "18");
  179. outtextxy(10, 205, "19");
  180. outtextxy(0, 205, "20");
  181. /*Se escriben los numeros de graduación de la barra de arriba*/
  182. outtextxy(205, 190, "1");
  183. outtextxy(205, 180, "2");
  184. outtextxy(205, 170, "3");
  185. outtextxy(205, 160, "4");
  186. outtextxy(205, 150, "5");
  187. outtextxy(205, 140, "6");
  188. outtextxy(205, 130, "7");
  189. outtextxy(205, 120, "8");
  190. outtextxy(205, 110, "9");
  191. outtextxy(205, 100, "10");
  192. outtextxy(205, 90, "11");
  193. outtextxy(205, 80, "12");
  194. outtextxy(205, 70, "13");
  195. outtextxy(205, 60, "14");
  196. outtextxy(205, 50, "15");
  197. outtextxy(205, 40, "16");
  198. outtextxy(205, 30, "17");
  199. outtextxy(205, 20, "18");
  200. outtextxy(205, 10, "19");
  201. outtextxy(205, 0, "20");
  202. /*Se escriben los numeros de graduación de la barra de abajo*/
  203. outtextxy(190, 220, "2");
  204. outtextxy(190, 230, "3");
  205. outtextxy(190, 240, "4");
  206. outtextxy(190, 250, "5");
  207. outtextxy(190, 260, "6");
  208. outtextxy(190, 270, "7");
  209. outtextxy(190, 280, "8");
  210. outtextxy(190, 290, "9");
  211. outtextxy(190, 300, "10");
  212. outtextxy(190, 310, "11");
  213. outtextxy(190, 320, "12");
  214. outtextxy(190, 330, "13");
  215. outtextxy(190, 340, "14");
  216. outtextxy(190, 350, "15");
  217. outtextxy(190, 360, "16");
  218. outtextxy(190, 370, "17");
  219. outtextxy(190, 380, "18");
  220. outtextxy(190, 390, "19");
  221. outtextxy(190, 400, "20");
  222. /*Fin de plano cartesiano graduado*/
  223. /*Trazar los dominios y el rango para función de 2 dominios*/
  224. /*Se traza la linea de la función*/
  225. setcolor(2);
  226. line(x1,y1,x2,y2);
  227.  
  228.  
  229. printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n*Funciomatico*\n*Por -DTC-*\n---Grafica de la funcion");
  230. closegraph();
  231.  
  232.                }

Al querer salir del modo gráfico a pantalla completa y continuar con el programa, solo se quita la gráfica, pero se imprime "final" en una pantalla negra y después un _ parpadeante.

¿Alguna idea para solucionar esto?


Muchas gracias de antemano
__________________
La Web del Dtc
http://www.dtcsrni.tk
DtcSrni Technologies
http://technologies.dtcsrni.tk

Última edición por Dtc; 25/04/2011 a las 22:00
  #2 (permalink)  
Antiguo 26/04/2011, 03:02
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 9 años, 5 meses
Puntos: 73
Respuesta: graphics.h - Cerrar modo gráfico y regresar a proceso normal del programa

Hace mucho que no programo gráficos en Borland C (que parece que es lo que estás usando, aunque no lo indicas), pero me parece que había que volver a modo texto. No recuerdo si había alguna función para ello o había que poner un modo de video que correspondiera a texto.
  #3 (permalink)  
Antiguo 26/04/2011, 14:59
Dtc
 
Fecha de Ingreso: marzo-2011
Ubicación: México
Mensajes: 39
Antigüedad: 8 años, 8 meses
Puntos: 1
Respuesta: graphics.h - Cerrar modo gráfico y regresar a proceso normal del programa

Estoy programando en C en Borland C++ versión 5.1
__________________
La Web del Dtc
http://www.dtcsrni.tk
DtcSrni Technologies
http://technologies.dtcsrni.tk

Última edición por Dtc; 27/04/2011 a las 15:55
  #4 (permalink)  
Antiguo 27/04/2011, 15:57
Dtc
 
Fecha de Ingreso: marzo-2011
Ubicación: México
Mensajes: 39
Antigüedad: 8 años, 8 meses
Puntos: 1
Respuesta: graphics.h - Cerrar modo gráfico y regresar a proceso normal del programa

Alguna idea?
__________________
La Web del Dtc
http://www.dtcsrni.tk
DtcSrni Technologies
http://technologies.dtcsrni.tk

Etiquetas: cerrar, consola, modo, proceso, programa, regresar, graficos
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 15:05.