• Martes 14 de Mayo de 2024, 21:04

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 - jpnl87

Páginas: [1]
1
Visual C++ / Linea Bressenham
« en: Jueves 22 de Febrero de 2007, 21:31 »
Necesito una mano con el algoritmo para dibujar la linea bressenham en MFC para todos los casos ya que hasta ahora tengo el algoritmo para pendientes entre 0 y 1
necesito casos para pendientes entre 1 e infinito y menores a cero

void CLinea::DibujarBressenham(CClientDC *dc)
{
int dx, dy,dy2,dxy2,dyx2,x,y,p,endx,incy;
   dx=puntofinal.getx()-puntoinicial.getx(); // diferencial de x
   dy=puntofinal.gety()-puntoinicial.gety(); // diferencial de y
   dy2=2*dy;//cambio de float a int
   dyx2=2*(dy-dx);
   p=dy2-dx;

   if(puntoinicial.getx()<puntofinal.getx())
   {
      x=puntoinicial.getx();
      y=puntoinicial.gety();
      endx=puntofinal.getx();
   }
   else
   {
      x=puntofinal.getx();
      y=puntofinal.gety();
      endx=puntoinicial.getx();
   }
if(puntoinicial.gety()<puntofinal.gety())
   {
      incy=1;
      y+=incy;
   }
      else
   {
      incy=-1;
      
   }

   dc->SetPixel(x,y,RGB(0,0,0));

   while(x<=endx)
   {
      x=x+1;
      
      if(p<0)
      {
         p+=dy2;
      }
      else
      {
         p+=dyx2;
         y++;
         
      }
      if(dy<0)
      {
         y--;
      }
dc->SetPixel(x,y,RGB(0,0,0));
   }
}

2
Visual C++ / Re: Ayuda Recorrido En Espiral De Una Matriz Cuadrada
« en: Sábado 3 de Febrero de 2007, 01:57 »
Pillen aqui logre hacer un codigo sencillo para visual c++ es fácil de entender para que acabe por fin el martirio del recorrido de la matriz en espiral este codigo la recorre de afuera hacia adentro tal como lo puse en el ejemplo que puse al principio de la discusión este  es:

#include<iostream.h>

#define  nfilas 4
#define  ncolumnas 4

void main()
{
   
   int matriz[nfilas][ncolumnas];
    int i=0,j=0,k=0;
   

   for(i=0;i<nfilas;i++)     //Ingresar Datos a la matriz por desde 0 hasta ncolumnas-1
   {
      cout<<" Ingrese las filas "<<endl;
      for(j=0;j<ncolumnas;j++)
      {
         cin>>matriz[j];
      }
   }
      

   cout<<"La Espiral en la matriz es: "<<endl;
   
    i=0;
   k=0; //Variable Auxiliar k que controla el ciclo
   

   do
   {
      //primer Recorrido de izquierda a derecha
   
         for(j=k; j<ncolumnas-k-1; j++)
         {
            cout<<matriz[j]<<endl;
         }
        
         //Segundo Recorrido de arriba hacia abajo
       
          for(i=k; i<nfilas-k-1; i++)
         {
             cout<<matriz[j]<<endl;
         }
          //Tercer Recorrido de derecha a izquierda
 
          for(j=ncolumnas-k-1; j>=k+1; j--)
         {
             cout<<matriz[j]<<endl;
         }
        
         //Cuarto recorrido de abajo hacia

          for(i=nfilas-k-1; i>=k+1; i--)
         {
             cout<<matriz[j]<<endl;
         }
          k++;
          

   }
   while(k!=0); //Mientras k!=0 repita los 4 recorridos hasta recorrer toda la matriz

}

Gracias por la ayuda pero pues por Google es dificil encontrar algo :comp:

3
Visual C++ / Ayuda Recorrido En Espiral De Una Matriz Cuadrada
« en: Domingo 28 de Enero de 2007, 20:50 »
No he podido hacer el codigo en visual c++ en el cual me lea una matriz cuadrada de enteros y que me imprima la matriz recorriendola en espiral empezando desde  [0,0] hacia la derecha como por ejemplo

1 2 7 3
4 2 2 1
3 2 5 6
8 9 7 6

y que imprima la espiral  1 2 7 3 1 6 6 7 9 8 3 4 2 2 5 2

Alguien sabe como hacerlo???

Páginas: [1]