• Domingo 22 de Diciembre de 2024, 07:16

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - avis_phoenix

Páginas: 1 2 3 [4]
76
C/C++ / Re: Demasiados Datos Globales...
« en: Jueves 5 de Agosto de 2004, 03:29 »
noooo, lacabecera si jala normalmente con esas 5 variables, vaya lee bien DATOS!!! no VARIABLES, el porblema es el siguiente, todo jalaba bien hasta que hice 2 cosas 1 clase completa (es decir la termine por completo) y una función, ahora, desde aquí puso ese error, hay demasiados DATOS globales,  entonces, si quito una de las 2 cosas que mensione, ya jala, es decir, si quito la ultima función que hice ya jala, y si la dejo y quito la clase, ya jala, es decir ya no admite algo más, y no solo es el encabezado si no en todo el programa, es decir que si hago otro encabezado para que jale estos pues ya no me deja, que hago?

77
C/C++ / Demasiados Datos Globales...
« en: Miércoles 4 de Agosto de 2004, 06:00 »
HOLA!! tengo uan cabecerá que hice de graficos para manejar los drivers vesa, pero sucede imaigno que ya sobre sature turbo c de funciones por qeu ya nome quiere jalar una función más, me dice demasiados datos globales, primeropense uqe eran muchas variables globales las que use, pero noo, solo usa 5 o 6, y lo demás son funciones y clases, y tengo que quitar una para que jale, y todavía me flatan como 4, que hago? que pasoa?, pro que este error?

78
C/C++ / Librerías
« en: Miércoles 4 de Agosto de 2004, 04:43 »
HOLA!! alguien sabe donde hay información un tanto cuanto detallada sobre librería en c++ (turbo c++ 3.0), lo que es, para que sirven, caracteristicas, que tiene de diferencia de la cabecera, como se hacen, vaya toodo sobre las librería de c, me sería de mcuha ayuda gracias.

79
C/C++ / Re: Duda C++ Base De Datos
« en: Sábado 31 de Julio de 2004, 13:24 »
HOLA!! bueno te pongo aquí un ejemplo de más omenos lo que tu quieres hacer solo que con listas doblemente enlazadas (un metodo propuesto púedes usar el que más te convenga) con la ventaja de que puedes tener tantos registros necesites y recuperarlos perfectamente,corre perfectamente en Borland C++ (no es necesario que sea el builder puede ser el turbo c++ u otro c++ menos visual c++ solo pro el detalle del gotoxy) aca te pongo el codigo por si te intereza:
Código: Text
  1.  
  2. /*Este programa es un ejemplo de base de datos primitivos muy a mi estilo*/
  3. //Una lista doblemente enlazada   Ejemplo
  4. //Probado bajo Borland C++ Builder 6 con Code Guard y full debug
  5. //inserta nombres en la ultima parte
  6. //borra nombres sin importar la posicion
  7. //muestra los nombres en retroceso y en anverso
  8. //Guarda la lista en modo texto en un archivo
  9. //carga la lista del archivo
  10.  
  11. #include <stdio.h>
  12. #include <alloc.h>
  13. #include <conio.h>
  14. #include <string.h>
  15. #include <stdlib.h>
  16.  
  17. // ------------------------
  18. void insertar(void);
  19. void extraer(void);
  20. void visualizar(void);
  21. void guardar(void);
  22. void cargar(void);
  23.  
  24. // -------------------------
  25.  struct listad
  26.  {
  27.   char prod[20];
  28.   int cant;
  29.   int desc;
  30.   int precio;
  31.   struct listad *ant;
  32.   struct listad *sig;
  33.  } *lista=NULL, *ante=NULL, *viz=NULL, *temp=NULL;
  34.  struct DB
  35.  {
  36.   char p[20];
  37.   int c;
  38.   int d;
  39.   int pr;
  40.  }*BD;
  41.  int n=0;
  42.  //-------------------------
  43.  
  44.  main()
  45.  {
  46.   char op;
  47.   do
  48.   {
  49.     clrscr();
  50.     gotoxy(30,8);
  51.     printf("1.- Insertar");
  52.     gotoxy(30,10);
  53.     printf("2.-Borrar");
  54.     gotoxy(30,12);
  55.     printf("3.-Ver lista");
  56.     gotoxy(30,14);
  57.     printf("4.-Guardar lista");
  58.     gotoxy(30,16);
  59.     printf("5.-Cargar archivo");
  60.     op = getch();
  61.     switch (op)
  62.     {
  63.       case '1':
  64.         insertar();
  65.         break;
  66.       case '2':
  67.         extraer();
  68.         break;
  69.       case '3':
  70.         visualizar();
  71.         break;
  72.       case '4':
  73.         guardar();
  74.         break;
  75.       case '5':
  76.         cargar();
  77.  
  78.     }
  79.   }while (op != 27);
  80.        lista = ante;
  81.        while(lista!=NULL)
  82.        {
  83.     ante = lista;
  84.     lista = lista->ant;
  85.     free(ante);
  86.        }
  87.        free(lista);
  88.        free(ante);
  89.        free(viz);
  90.        free(temp);
  91.        return 0;
  92.  }
  93.  
  94.  //Ahora si a empezar
  95. //-----------------------------------------------
  96. void insertar(void)
  97. {
  98.   //insertamos un elemento en la lista
  99.   clrscr();
  100.   lista = (struct listad *)malloc(sizeof(struct listad));
  101.   n = n+1;
  102.   printf("Escribe el producto %d: ",n);
  103.   gets(lista->prod);
  104.   printf("Escribe la cantidad %d: ",n);
  105.   scanf("%d",&lista->cant);
  106.   printf("Escribe el Descuento %d: ",n);
  107.   scanf("%d",&lista->desc);
  108.   printf("Escribe el precio %d: ",n);
  109.   scanf("%d",&lista->precio);
  110.   lista->sig = NULL;
  111.   if (ante == NULL)
  112.   {
  113.     lista->ant = NULL;
  114.     ante = lista;
  115.   }
  116.   else
  117.   {
  118.     lista->ant = ante;
  119.     ante->sig = lista;
  120.     ante = lista;
  121.   }
  122. }
  123.  
  124. //------------------------------------------------
  125. void extraer(void)
  126. {
  127.   //borramos un elemento de la lista
  128.   char tempo[10];
  129.   if (ante == NULL)
  130.     return;
  131.   clrscr();
  132.   printf("Escribe que producto quieres borrar (junto con su descuento, precio y cantidad) : ");
  133.   gets(tempo);
  134.   lista = ante;
  135.   while(lista !=NULL)
  136.   {
  137.     if(strcmp(lista->prod,tempo)== 0)
  138.     {
  139.       if (strcmp(ante->prod, tempo)==0)
  140.         ante = lista->ant;
  141.       viz = lista->ant;
  142.       temp = lista->sig;
  143.       if (viz == NULL && temp == NULL)
  144.       {
  145.         free(lista);
  146.         ante = NULL;
  147.         return;
  148.       }
  149.       free(lista);
  150.       if (temp != NULL && viz != NULL)
  151.         viz->sig = temp;
  152.       else if (temp == NULL)
  153.         viz->sig = NULL;
  154.       if (temp != NULL)
  155.         temp->ant = viz;
  156.       else
  157.         temp = viz;
  158.       if (viz != NULL)
  159.         lista = viz;
  160.       else
  161.         lista = temp;
  162.       printf("Fue eliminado %s\n",tempo);
  163.     }
  164.     lista = lista->ant;
  165.   }
  166.   printf("se termino");
  167.   getch();
  168. }
  169. //--------------------------------------------------
  170. void visualizar (void)
  171. {
  172.   //vemos que hay en la lista
  173.   if (ante == NULL)
  174.     return;
  175.   lista = ante;
  176.   clrscr();
  177.   printf("Producto  Cantidad  Descuento  Precio\n");
  178.   while(lista!=NULL)
  179.   {
  180.     printf("%s  %d  %d  %d\n",lista->prod,lista->cant,lista->desc,lista->precio);
  181.     lista=lista->ant;
  182.   }
  183.   getch();
  184. }
  185. //---------------------------------------------------
  186.  
  187. //---------------------------------------------------
  188.  
  189. void guardar (void)
  190. {
  191.   //esta funci¢n guardara en un archivo la lista
  192.   //primero la muestra (solo para acomodar el puntero)
  193.   if (ante==NULL)
  194.     return;
  195.   clrscr();
  196.   //ahora si
  197.   FILE *archivo;
  198.   if((archivo=fopen("Inventario.bdc","wb"))!=NULL)
  199.   {
  200.     lista = ante;
  201.     while(lista!=NULL)
  202.     {
  203.       strcpy(BD->p,lista->prod);
  204.       BD->c = lista->cant;
  205.       BD->d = lista->desc;
  206.       BD->pr = lista->precio;
  207.       printf("%s",lista->prod);
  208.       fwrite(BD, sizeof(struct DB), 1, archivo);
  209.       lista=lista->ant;
  210.     }
  211.     fclose(archivo);
  212.     printf("\nLa Base de Datos fue guardado con exito");
  213.     getch();
  214.   }
  215.   else
  216.   {
  217.     fclose(archivo);
  218.     printf("Error al intentar crear la base de datos.");
  219.     getch();
  220.     exit(1);
  221.   }
  222. }
  223. //--------------------------------------------------------------------------
  224. void cargar(void)
  225. {
  226.   FILE *archivo1;
  227.   clrscr();
  228.   if((archivo1=fopen("Inventario.bdc","rb"))!=NULL)
  229.   {
  230.     do
  231.     {
  232.       lista = (struct listad *)malloc(sizeof(struct listad));
  233.       fread(BD,sizeof(struct DB),1,archivo1);
  234.       if(feof(archivo1))
  235.       {
  236.         free(BD);
  237.         free(lista);
  238.         continue;
  239.       }
  240.       strcpy(lista->prod,BD->p);
  241.       printf("%s",BD->p);
  242.       lista->cant = BD->c;
  243.       lista->desc = BD->d;
  244.       lista->precio = BD->pr;
  245.       lista->sig = NULL;
  246.       if (ante == NULL)
  247.       {
  248.         lista->ant = NULL;
  249.         ante = lista;
  250.       }
  251.       else
  252.       {
  253.         lista->ant = ante;
  254.         ante->sig = lista;
  255.         ante = lista;
  256.       }
  257.     }while(!feof(archivo1) && ante != NULL);
  258.     fclose(archivo1);
  259.     printf("\nLa Base de Datos fue cargado con Exito.Ahora te la mostraremos\nPresiona una tecla para continuar");
  260.     getch();
  261.     visualizar();
  262.   }
  263.   else
  264.   {
  265.     fclose(archivo1);
  266.     printf("Error al intentar abrir la base de datos");
  267.     getch();
  268.     exit(1);
  269.   }
  270. }
  271.  
  272.  
espero que te sirva de algo.

80
C/C++ / Re: Usar Memoria Extendida En Ms-dos
« en: Miércoles 28 de Julio de 2004, 03:30 »
Graicas, si conocia esa instrucción (make far point), y usas para esta un puntero lejano y es cierto me olvidaba de él, pues bueno muy probablemente se la única manera de manejar toda la memoria a tu placer, y esto "dificulta mucho" las cosas, bueno ya te agrege a mi lista de contactos espero me aceptes y espero te conectes pronto, yo normalmente estoy a las 8:00 pm hora de méxico, esperoverte, y gracias por decirme eso, y si alguein sabe algo más sería de mucha utilidad gracias.

81
C/C++ / Re: Usar Memoria Extendida En Ms-dos
« en: Sábado 24 de Julio de 2004, 17:13 »
en realidad no, haz esta prueba sencillisima, crea un array bidimensional de 250 x 250 esto excedela memoria nucleo, y te lo avisa y te marca error y no se puede ejecutar solo por esto, sucede que si no recuerdas la memoria nucleo de ms-dos es de 64k si excedes este tamaño de memoria pues no puedes jalar el programa, sin embargo yo conozcomuchos juegos de ms-dos que te decian que para ejecutarlo tenias que usar lamemoria extendida, pues estos usaban más de los 64k de memoria, no creo que sea = que la memoria virtual actual pues la memopria extendida es la memoria ram que sobre de los 64k que usa ms-dos, y la memoria virtual es espacio del disco duro usado para simular memoria (y muy lento), es más para ms-dos hab´+ia unos discos de arranque (debes recordar) que eran especiales para quitar basura de ms-dos e iniciar con la mayorparte de lsorecursos, y había juegos que solo así jalaban, y el disco de arranque decia de opciones "con memoria extendida" y "sin memoria extendida" (algunos con cd y sin cd) y si no la jalabas con memoria extendida no jalaba el juego.
es decir que en ms-dos si tu tienes una memoria ram de 16 mb pues solo podrás acceder a 64k de esa memoria; la memoria extendida es para usar lo demás, para aprovechar los 16mb.

82
C/C++ / Usar Memoria Extendida En Ms-dos
« en: Sábado 24 de Julio de 2004, 06:05 »
HOLA!! alguien sabe como se puede hacer accesible la memoria extendida para un programa hecho en turbo c++ 3.0?, que algoritmo o que librería o como?, se debe poder pues se usa la memoria extendida desde los 90's y turbo c++ esta hecho en 1992 (o eso recuerdo), sería de mucha ayuda Gracias.

83
C++ Builder / Re: Problemas Con C++ Builder
« en: Lunes 19 de Julio de 2004, 15:20 »
:hola:  Ya supe por fin el problema, en realidad no tiene los dll, de ninguno, en ningún lado, revisaré elcdpero no creo encontrarlo, por favor alguien podría pasarme todos los vendorlib del Borland builder c++ 6?, Gracias merlin por el de interbase pero meflatan lso demás, perdonenme por la molestia.

84
C/C++ / Re: Seno,coseno, Tangente
« en: Sábado 17 de Julio de 2004, 04:51 »
"Lo que hacemos no es nunca comprendido, y siempre es acogido sólo por los elogios o por la crítica."
Friedrich Wilhelm Nietzsche

85
C/C++ / Re: Necesito Graficos Sin Bgi
« en: Sábado 17 de Julio de 2004, 04:32 »
Hola!! bueno ya cotneste a tu pregunta en mi post, te pongo el link y espeor que te sirva

mi post

 :kicking:

86
C/C++ / Re: Consejo Con Graficos
« en: Sábado 17 de Julio de 2004, 04:24 »
HOLA!! bueno estas de buena suerte, pues yo estoy haciendo unalibrería de eso, usando VESA pero todavia no la termino, pues me flatan muchas cosas, pues no solo es inicalizar el modo graficos por medio de vesa si no que al no ser compatible con el BGI de borland (o eso tnego entendido) pues tengo que hacer toodas las funciones, y buenome guio por un tutorialque estoy leyendo, peor sin embargo no viene todo el problema principal que tengo es matematico para hacer las funciones de algunas figuras sine mbargo no tengomucho conocimiento de geometría analítica, de todos modos la estoy empezando a hacer y no tengo mucho, así que no creo uqe te sirva de mucho la que yo tengo, entonces te voya  poner el link de la página en la cual yo me baso:

Artículos de Santiago Romero

ahi busca la sección que dice Curso de Programación Gráfica

suerte.

87
C/C++ / Re: Seno,coseno, Tangente
« en: Jueves 15 de Julio de 2004, 06:34 »
:hola:  HOLA!! y gracias :gracias:  por todas las esperanzas y ánimos que me dan, :hitcomp: , es muy cierto lo que dices de los trucos de ensamblador, tambien es cierto que el tiempo en que realiza dichas operaciones es muy poco y dificilmente son lentos, pero bueno repito que hablo de gráficos, para el ojo humano una centesima de segundo es perfectamente captable, y bueno es chiste de esta pregunta no es hacer un algoritmo perfecto, repito necesito algo muy básico, nada exageradamente bueno, aquí hasta me hablan de grados de exactitud, no quiero exactitud, ni pretendo mejorar a borland, por favor no soy tanto (haganme la buena), si fuera tan fregon como para mejorar a los programadores de borland creanme que no vengo y pregunto en foros de internet, tampoco quiero pretender ser ensamblador bueno, ni conocer aprofundida este lenguaje (vaya demaciada profundidad), quiero abusar (aunque suene feo) de los que visitan estos foros por si alguno conoce al algoritmo y me lo pase, o la formula ya con eso me hago bolas yo solo, entiendo que no es un algoritmo sencillo, y repito que el chiste de no usar la librería math (aparte de aprender) es no usar un algoritmo complejo y complicado (complejo usando la definición matemática, pues tengo entendido que esto se realiza mediante algo de complejidad no tengo bien entendido exactamente que usan) y al no usar algo tan complicado evitar operaciones innecesarias, y así lograr mayor rápidez, así que espero que alguien conozca el algoritmo y me lo pase, explique en que iba a usar esta formula para que entendieran que tipo de formula necesito, que tipo de calculo necesito y por que no uso math.h, y si claro que sé que math.h no dice nada más que el nombre de las funciones, no creen que abrir un encabezado es laprimera curiosidad que tuve?, y que sabiendo que math.h hace elseno pensar que ahi dice como lo hace?, la abri hace mucho y vi que no tenia nada, pero bueno alparecer la voya  tener que usar, otra razón por la cual no quiero usar esta cabecera es por que yo tengo entendido que al usar un cabecera carga (lee) toooda la cabecera y no nada más lo que necesito, entonces se me hace mucho lo que hace esta cabecera para lo que yo necesito.  :(

Bueno si alguien conoce el algoritmo para calcular seno o coseno o  tangente o raiz cuadrada me haría muy feliz si me la pasara. :D

P.D. la tangente en realidad nola necesito pero tengomucha curiosidad :P

 :adios:

88
C/C++ / Re: Seno,coseno, Tangente
« en: Jueves 15 de Julio de 2004, 04:20 »
Vaya a lo que me refiero es que una cabecera de alto nivel cualquiera uqe sea (hasta la que estoy intentando a hacer) es muchsisiisisisisisisimo más lenta que el lenguaje ensablador simplemente hace más lento el dibujado cuado usas la multiplicación la simple multiplicación ahora imaginate lo que haría un algoritmo que esta hecho para ser general, yo no necesito tooodo loq ue puede hacer math.h, si no solo unas cuantas cosas, no neceisto nisiquiera exactitud, necesito que sea si acasi de 1 decimal no más (ahi contesto lo del la exactitud) pues no hay pixeles y medio, y necesito el decimal para redondear (si redondea por default pues no necesito decimales) ya me van entendiendo?, para mi librería usomucho ellenguaj eensamblador, sin embargo no conozco lo suficiente y me estoy giando por ayuda, sin embargo la ayuda hasta ahi llega(hasta lo que llevo), y por ejemplo para hacer un arco necesitaría saber coseno y seno, y comod iej si cargo tooooda la cabecera math.h pues se alentaría más (por cosas pequeñitas, pero valiosas para el ojo humano), la maquina, pues mi máquina no es la gran cosapero la quiero hacer para maquinas 486 con 16 mb y 4mb en video(que ya es mucho para esas máquinas) y la miapues es más potente, uso turbo c++ 3.0 como compilador, espero que con esto se entienda que cosa quiero, y bueno he estado pensado un poco y meserviria también saber hacer una raiz cuadrada (igual con 1 deciaml de exactitud) y ya, espero que puedan ayudarme y Gracias por toodo.

89
C/C++ / Seno,coseno, Tangente
« en: Martes 13 de Julio de 2004, 17:29 »
:hola: HOLA!! les voya a hacer una pregunta muy matematica sé que no es un foro para matematicas si no para c++, pero esta es mi pregunta ¿como se puede calcular el seno de un angulo sin usar al libreria math.h?, ¿alguein conoce el algoritmo op formula para sacar el seno, coseno,  y tangente? o al forma matematica que se usa, es decir ¿alguien sabe que hace una calculadora para sacar el seno, coseno y tangente? necesito de perdida la poesia de como se hace, por favor, esto lo pregunto pues quiero usar estas funciones en una cabecera grafica pero al ser gráfica debo usar en lomínimo otras cabeceras sobre todo matematicas pues hace muy lento el proceso y en un mdo o gráfico lo importante es la fluides del mismo, quiero evitar que se vea como se va haciendo la figura, por favor ayudenme. :(  :comp:  :hola:

90
C/C++ / Re: Consejo Con Graficos
« en: Martes 13 de Julio de 2004, 17:18 »
HOLA!! bueno después de investigar mucho sobre gráficos supe el error espeor que alguein lo lea, el error es en primera usar graficos por medio de BGI pero bueno eso no es tanto, y el segundo es que después de dibujar las lineas y antes de borrarla debo poner retrasos eso evita que parpadee, bueno espero le sirva a alguien, para hacer un retraso es así:
Código: Text
  1.  
  2.   while ((inportb(0x03da) & 8) != 0);
  3.   while ((inportb(0x03da) & 8) == 0);
  4.  
  5.  

bueno así se quita el efecto de parpadeo o snow.

91
C++ Builder / Re: Problemas Con C++ Builder
« en: Sábado 10 de Julio de 2004, 04:09 »
:huh: bueno ese es el error presiso que me sale, para ser más explicitos cuando quiero conectarme conla base de datos me dice "Unable to load gds32.dll" en bases tipo interbase como ejemplo, vaya me dice Unable to load X donde X es el VendorLib olibrería del vendedor, necesito bajar otro programa para poder usar las bases de datos?, alguien me podría decir que pasa o es mi versión de Builder o que?, y sialguien sabe como solucionarlo sin necesidad de bajar o comprar algo mejor, muchas gracias.

92
C/C++ / Re: Consejo Con Graficos
« en: Viernes 2 de Julio de 2004, 04:17 »
;) HOLA!! lastima que noleiste el codigo, se que es largo y tal vez me complique demasiadolavida,pero este reloj a comparación del tuyo pone las lineas para definir horas y minutos, y mi codigo no hace girar la manecilla, lo que hace mi codigo es poner la posición de las manecillas exactamente (según yo) donde deben estar según la hora, minutos, segundos y sentecimas de segundo, no cambia la manecilla del segundo cada segundo, si no que cada centesima de segundo cambia la posición del segundero por ejemplo si esta en 50 centesimas de segundoe l segundero esta a la mitad, si el segundero esta en 30 segundos el minutero esta a la mitad del minuto, y si el minutero esta en 30 minutos la hora marca a la mitad de las 2 horas (de la hora actual y de la hora siguiente), nada tonto mi codigo, aunque largo, y lo pongo tan largo por que hago un analisis distinto según el cuadrante de la manecilla tal vez revice tu codigo bien y vea tu forma de hacerlo sin tana ravoltura y tal vez me ayudaría, debo destacar yo uso la hora es decir 1, 2, 3, 4, 5 etc. y no un grado de pi, y me acomode más haciendolo con un analisis de coordenanas y no de angulos, bueno Gracias.y no puse el codigo completo pues no es necesario, el codigo que puse es tooodo lo que dibuja las manecillas y como las dibuja tambien cada cuadno las dibuja (while) el que cada centesima cambie la hora hace el movimiento.

93
C++ Builder / Problemas Con C++ Builder
« en: Domingo 27 de Junio de 2004, 06:54 »
HOLA!!!
saben tengo el Borland C++ Builder 6 y he leidolos tutoriales simplones que vienen en la ayuda, pero sucede que ni esos puedo hacer, no por que no le entienda, si no por que alquerer conectarme con una base de datos de cualquier extensión y tipo me marca que nopuede cargar el dll de ninguno :'( no se que hacer, la verdad es que sin conectarme a la base de datos pues no se puede hacer nada, alguein me podría decir como resolver este problemon?
Gracias :hola:

94
C/C++ / Re: Consejo Con Graficos
« en: Domingo 27 de Junio de 2004, 06:33 »
HOla!! gracias pro el consejo parpadeamenos pero la verdad sigue viendose mal y además es peor porque deja la marca como si no pintara la de borrado, la verdad espero que me puedas aconsejar el codigo que hace todo el reloj es elsigueinte
Código: Text
  1. int H,CO,CA,X,Y,x,y,i;
  2.   int Xs,Ys,Xm,Ym,Xh,Yh;
  3.   double temp;
  4.   float ho,m,s;
  5.   H=200;
  6.   x=320;
  7.   y=240;
  8.        //  while(!kbhit())
  9.   //{
  10.   setfillstyle(1,BLANCO);
  11.   fillellipse(x,y,H,H);
  12.   setcolor(GRIS);
  13.   for(i=1;i<61;i++)
  14.   {
  15.     if(i >0 && i <=15)
  16.     {
  17.       temp = (-1 *(i*6-90))/((360/M_PI)/2);
  18.       CO = -1 * (H *(sin(temp)));
  19.       CA = H * (cos(temp));
  20.     }
  21.     else if (i >15 && i<=30)
  22.     {
  23.       temp = (i*6-90)/((360/M_PI)/2);
  24.       CO =H * (sin(temp));
  25.       CA =H * (cos(temp));
  26.     }
  27.     else if (i >30 && i<=45)
  28.     {
  29.       temp = (-1*(i*6-270))/((360/M_PI)/2);
  30.       CO = H * (sin(temp));
  31.       CA= -1 * (H * (cos(temp)));
  32.     }
  33.     else if (i >45 && i <=60)
  34.     {
  35.       temp =(i*6-270)/((360/M_PI)/2);
  36.       CO = -1* (H * (sin(temp)));
  37.       CA = -1 *(H *(cos(temp)));
  38.     }
  39.     X= x + CA;
  40.     Y = y + CO;
  41.     line(x,y,X,Y);
  42.   }
  43.   setcolor(NEGRO);
  44.   for(i=1;i<13;i++)
  45.   {
  46.     if(i >0 && i <=3)
  47.     {
  48.       temp = (-1 *(i*30-90))/((360/M_PI)/2);
  49.       CO = -1 * (H *(sin(temp)));
  50.       CA = H * (cos(temp));
  51.     }
  52.     else if (i >3 && i<=6)
  53.     {
  54.       temp = (i*30-90)/((360/M_PI)/2);
  55.       CO =H * (sin(temp));
  56.       CA =H * (cos(temp));
  57.     }
  58.     else if (i >6 && i<=9)
  59.     {
  60.       temp = (-1*(i*30-270))/((360/M_PI)/2);
  61.       CO = H * (sin(temp));
  62.       CA= -1 * (H * (cos(temp)));
  63.     }
  64.     else if (i >9 && i <=12)
  65.     {
  66.       temp =(i*30-270)/((360/M_PI)/2);
  67.       CO = -1* (H * (sin(temp)));
  68.       CA = -1 *(H *(cos(temp)));
  69.     }
  70.     X= x + CA;
  71.     Y = y + CO;
  72.     line(x,y,X,Y);
  73.   }
  74.   setcolor(BLANCO);
  75.   setfillstyle(SOLID_FILL,BLANCO);
  76.   fillellipse(x,y,H-(H*0.1),H-(H*0.1));
  77.   while(!kbhit())
  78.   {
  79.     gettime(&h);
  80.     setcolor(NEGRO);
  81.     if(h.ti_hour > 12)
  82.     h.ti_hour = h.ti_hour - 12;
  83.     s= h.ti_sec +(float)((float)h.ti_hund / 100);
  84.     m = h.ti_min + ((s*100/60)/100);
  85.     ho = h.ti_hour + ((m*100/60)/100);
  86.     sprintf(es,"%d : %d : %d.%d",h.ti_hour,h.ti_min,h.ti_sec,h.ti_hund);
  87.     setfillstyle(SOLID_FILL,GRIS);
  88.     bar(100,425,220,450);
  89.     outtextxy(100,425,es);
  90.     //------->Segundero
  91.     setlinestyle(SOLID_LINE,1,1);
  92.     setcolor(ROJO);
  93.     if(s >0 && s <=15)
  94.     {
  95.       temp = (-1 *(s*6-90))/((360/M_PI)/2);
  96.       CO = -1 * ((H-(H*0.1)) *(sin(temp)));
  97.       CA = (H-(H*0.1)) * (cos(temp));
  98.     }
  99.     else if (s >15 && s<=30)
  100.     {
  101.       temp = (s*6-90)/((360/M_PI)/2);
  102.       CO =(H-(H*0.1)) * (sin(temp));
  103.       CA =(H-(H*0.1)) * (cos(temp));
  104.     }
  105.     else if (s >30 && s<=45)
  106.     {
  107.       temp = (-1*(s*6-270))/((360/M_PI)/2);
  108.       CO = (H-(H*0.1)) * (sin(temp));
  109.       CA= -1 * ((H-(H*0.1)) * (cos(temp)));
  110.     }
  111.     else if (s >45 && s <=60)
  112.     {
  113.       temp =(s*6-270)/((360/M_PI)/2);
  114.       CO = -1* ((H-(H*0.1)) * (sin(temp)));
  115.       CA = -1 *((H-(H*0.1)) *(cos(temp)));
  116.     }
  117.     Xs= x + CA;
  118.     Ys = y + CO;
  119.     line(x,y,Xs,Ys);
  120.     //------> Minutero
  121.     setlinestyle(SOLID_LINE,1,2);
  122.     setcolor(GRISO);
  123.     if(m >0 && i <=15)
  124.     {
  125.       temp = (-1 *(m*6-90))/((360/M_PI)/2);
  126.       CO = -1 * ((H-(H*0.1)) *(sin(temp)));
  127.       CA = (H-(H*0.1)) * (cos(temp));
  128.     }
  129.     else if (m >15 && m<=30)
  130.     {
  131.       temp = (m*6-90)/((360/M_PI)/2);
  132.       CO =(H-(H*0.1)) * (sin(temp));
  133.       CA =(H-(H*0.1)) * (cos(temp));
  134.     }
  135.     else if (m >30 && m<=45)
  136.     {
  137.       temp = (-1*(m*6-270))/((360/M_PI)/2);
  138.       CO = (H-(H*0.1)) * (sin(temp));
  139.       CA= -1 * ((H-(H*0.1)) * (cos(temp)));
  140.     }
  141.     else if (m >45 && m <=60)
  142.     {
  143.       temp =(m*6-270)/((360/M_PI)/2);
  144.       CO = -1* ((H-(H*0.1)) * (sin(temp)));
  145.       CA = -1 *((H-(H*0.1)) *(cos(temp)));
  146.     }
  147.     Xm= x + CA;
  148.     Ym = y + CO;
  149.     line(x,y,Xm,Ym);
  150.     //----------->Hora
  151.     setlinestyle(SOLID_LINE,1,3);
  152.     setcolor(NEGRO);
  153.     if(ho >0 && ho <=3)
  154.     {
  155.       temp = (-1 *(ho*30-90))/((360/M_PI)/2);
  156.       CO = -1 * ((H-(H*0.3)) *(sin(temp)));
  157.       CA = (H-(H*0.3)) * (cos(temp));
  158.     }
  159.     else if (ho >3 && ho<=6)
  160.     {
  161.       temp = (ho*30-90)/((360/M_PI)/2);
  162.       CO =(H-(H*0.3)) * (sin(temp));
  163.       CA =(H-(H*0.3)) * (cos(temp));
  164.     }
  165.     else if (ho >6 && ho<=9)
  166.     {
  167.       temp = (-1*(ho*30-270))/((360/M_PI)/2);
  168.       CO = (H-(H*0.3)) * (sin(temp));
  169.       CA= -1 * ((H-(H*0.3)) * (cos(temp)));
  170.     }
  171.     else if (ho >9 && ho <=12)
  172.     {
  173.       temp =(ho*30-270)/((360/M_PI)/2);
  174.       CO = -1* ((H-(H*0.3)) * (sin(temp)));
  175.       CA = -1 *((H-(H*0.3)) *(cos(temp)));
  176.     }
  177.     Xh= x + CA;
  178.     Yh = y + CO;
  179.     line(x,y,Xh,Yh);
  180.     setcolor(BLANCO);
  181.     setlinestyle(SOLID_LINE,1,1);
  182.     line(x,y,Xs,Ys);
  183.     setlinestyle(SOLID_LINE,1,2);
  184.     line(x,y,Xm,Ym);
  185.     setlinestyle(SOLID_LINE,1,3);
  186.     line(x,y,Xh,Yh);
  187.   }
  188.  

95
C/C++ / Consejo Con Graficos
« en: Jueves 24 de Junio de 2004, 05:55 »
HOLA!! :hola:
tengo un porblema estoy haciendo un reloj analogo en turbo c++, este reloj sirve bien y todo, el problema es le siguiente, el reloj necesita esta siendo borrado y redibujado (minimo las manecillas) en menos de unsegundo durante el tiempo que sea, pero al redibujar tanto y tan rápido pues se ve muy mal, por que elmetodode dibujado de bgi que uso (el VGA) es muy malo, se ve comoparpadea siempre, les voya  explicar comole hago
primero dibujo el reloj pro completo, y el while comienza en donde dibuja las manecillas, antes hacian un circulo que borraba toda el area donde podían estar las manecillas y se veia mal, ahora lo que hago es que antes de volverlas a dibujar borro su hubicación anterior, pero sucede que se ve = o peor que si pongo todo un circulo relleno, alguien me podría dar una buena sugerencia para eliminar este molesto error y que se vea fluida la animación de mi reloj?
muchas gracias  :hola: :comp:

Páginas: 1 2 3 [4]