Dibuja el ci­rculo de Bresenham

¿Has encontrado un error? ¿Tienes la solución? Deja tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por estudiante con únicamente conocimiento básico del lenguaje, no de programación.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include<iostream.h>
 #include<graphics.h>
 #include<math.h>
 #include<conio.h>
 #include<stdio.h> #include<process.h>
 #include <stdlib.h>
 #include<dos.h>
 
  int convertx(int k)     {
       return(320+k);
     }
 
  int converty(int k)    {
      return(240-k);
    }
 
  int convertxc(int k)      {
   return(320+k);
      }
 
  int convertyc(int k)      {
    return(240-k);
      }
 
   void axis();   int circlemid(int,int,int);
   void plotpoint();
 
   void main()
   {      int gdriver=DETECT,gmode;
      initgraph(&gdriver,&gmode,"c:\tc1\bgi");
      float xc,yc;
      float r;
      while(1)       {
    cout<<"n Enter The Center Of The Circle : ";
    cin>>xc>>yc;
    cout<<"n Enter the Radius Of The Circle: ";
    cin>>r;    circlemid(xc,yc,r);
    cout<<"n Do you want to continue ('y' or 'Y') : ";
    char c;
    c=getch();
    if(c=='y' || c=='Y')    break;
       }
    }
 
    void axis()    {
     setcolor(1);
     line(320,0,320,480);
     line(0,240,640,240);
    } 
    void plotpoint(int xc,int yc,int x1,int y1)
    {
      delay(50);
      putpixel(convertxc(xc)+x1,convertyc(yc)+y1,1);      putpixel(convertxc(xc)-x1,convertyc(yc)+y1,2);
      putpixel(convertxc(xc)+x1,convertyc(yc)-y1,3);
      putpixel(convertxc(xc)-x1,convertyc(yc)-y1,4);
 
      putpixel(convertxc(xc)+y1,convertyc(yc)+x1,5);      putpixel(convertxc(xc)-y1,convertyc(yc)+x1,6);
      putpixel(convertxc(xc)+y1,convertyc(yc)-x1,7);
      putpixel(convertxc(xc)-y1,convertyc(yc)-x1,8);
      }
     int circlemid(int xc,int yc,int r)
     {
        int x,y;
        x=0;
        y=r;        axis();
        putpixel(convertxc(xc),convertyc(yc),5);
        plotpoint(xc,yc,x,y);
        double p=1-r;
         while(x<y)
         {
          if(p<0)
          {
       x=x+1;       p=p+2*x+1;
          }
          else
          {
      x=x+1;      y=y-1;
      p=p+2*(x-y)+1;
          }
          plotpoint(xc,yc,x,y);
        }       return(0);
      }

11 comentarios en "Dibuja el ci­rculo de Bresenham"

santos quispe

por favor quisiera que me ayude con este Algoritmo BresenHam pero en codio java, le agradeceria muchisisimo

Punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

  • Si es lenguaje C <code lang="c">Código en C</code>
  • Si es lenguaje Pascal <code lang="pascal">Aquí dentro el código de Pascal</code>.

De esta manera el código coloreas el código.

Deja un comentario

Suscribirse a los comentarios.