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);
} |
santos quispe
2010-04-21 17:46:31
por favor quisiera que me ayude con este Algoritmo BresenHam pero en codio java, le agradeceria muchisisimo