# Đề tài: Anh em sử dum code nay

1. Awaiting Email Confirmation
Ngày gia nhập
12 2007
Bài viết
5

## Anh em sử dum code nay

vẽ đoạn đoạn thẳng
Code:
```/*thuat toan midden Point*/
#include<conio.h>
#include<stdio.h>
#include<math.h>
#include <graphics.h>
#include <stdlib.h>
//#define TRUE  1
//#define FALSE 0

typedef struct {
int x,y;
} point;
//typedef unsigned char BOOL;

int MDline(point A,point B, point *KQPT)
{

int   x,y,dx,dy,count,i,p;
point tPT;
BOOL  f1= FALSE, f2= FALSE;

/*truong hop song song truc toa do*/
if(A.x==B.x)//song song 0Y
{
if(A.y>B.y)
{
tPT=A;
A=B;
B=tPT;
}
for(count=0,y=A.y;y<=B.y;y++)
{

KQPT[count].x=A.x;
KQPT[count++].y=y;
}  return count ;
}
if(A.y==B.y)// song song 0X
{
if(A.x>B.x)
{
tPT=A;
A=B;
B=tPT;
}
for(count=0,x=A.x;x<=B.x;x++)
{
KQPT[count].x=A.x;
KQPT[count++].y=x;
}  return count ;
}
if(A.x>B.x)
{
tPT=A ;
A=B;
B=tPT;
}
/*he so goc<0*/
if(A.y>B.y)
{
f1=TRUE;
tPT=B;
B.x=2*B.x-A.x;
B.x=A.y;
A=tPT;
}
/*he so goc >1*/
if((B.y-A.y)>(B.x-A.x))
{
f2=TRUE;
x=A.x;
A.x=A.y;
A.y=x;
x=B.x;
B.x=B.y;
B.y=x;
}
/*tinh toan*/
x=A.x;
y=A.y;
dx=B.x-A.x;
dy=B.y-A.y;
p=dy-dx/2;
for(count=0;x<=B.x;x++)
{
KQPT[count].x=x;
KQPT[count++].y=y;
if(p<=0)
{
p+=dy;
}
else
{
y++;
p+=dy-dx;
}
}
/*kiem tra tinh hop le*/
if(f2)
for( i=0;i<count;i++)
{
x=KQPT[i].x;
KQPT[i].x=KQPT[i].y;
KQPT[i].y=x;
}
if(f1)
for(i=0;i<count;i++)
{
KQPT[i].x=2*tPT.x-KQPT[i].x;
}
return count;
}
int main()
{
int   i,count;point A,B;
point KQPT[640];

/* request auto detection */
int gdriver = DETECT, gmode, errorcode;

/*Nhap du lieu*/
//	clrscr();
printf("Nhap toa do diem thu nhat:\n");
printf("\nxA="); scanf("%d",&A.x);
printf("\nyA="); scanf("%d",&A.y);
printf("Nhap toa do diem thu hai:\n");
printf("\nxB="); scanf("%d",&B.x);
printf("\nyB="); scanf("%d",&B.y);

/*Khoi dong che do do hoa*/
initgraph(&gdriver, &gmode, "D:\\TC\\BGI");
errorcode = graphresult();
if (errorcode != grOk)  /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);             /* return with error code */
}

/*Thuc hien ve*/
count= MDline(A,B, KQPT);
for(i= 0; i< count; i++)
putpixel(KQPT[i].x, KQPT[i].y,RED);
/*Ket thuc*/
getch();
closegraph();
}```

2. code bạn chạy tốt mà. bạn chạy trong console của win đôi khi hay gặp vấn đề. để dễ kiểm tra bạn nên nhập số lớn vào một tí, chẳng hạn như 10, 50, 100, ... Phía dưới là code mà mình sửa lại một tí, cũng ko nhiều lắm.

C Code:
1. /*thuat toan midden Point*/
2. #include<conio.h>
3. #include<stdio.h>
4. #include<math.h>
5. #include <graphics.h>
6. #include <stdlib.h>
7.
8. #define TRUE  1
9. #define FALSE 0
10. #define BOOL int
11.
12. typedef struct {
13.     int x,y;
14. } point;
15. //typedef unsigned char BOOL;
16.
17. int MDline(point A,point B, point *KQPT)
18. {
19.
20.  int   x,y,dx,dy,count,i,p;
21.  point tPT;
22.  BOOL  f1= FALSE, f2= FALSE;
23.
24.  /*truong hop song song truc toa do*/
25.  if(A.x==B.x)//song song 0Y
26.         {
27.           if(A.y>B.y)
28.             {
29.                 tPT=A;
30.              A=B;
31.                 B=tPT;
32.             }
33.           for(count=0,y=A.y;y<=B.y;y++)
34.              {
35.
36.                 KQPT[count].x=A.x;
37.                 KQPT[count++].y=y;
38.             }  return count ;
39.        }
40.   if(A.y==B.y)// song song 0X
41.     {
42.        if(A.x>B.x)
43.             {
44.                tPT=A;
45.             A=B;
46.             B=tPT;
47.             }
48.           for(count=0,x=A.x;x<=B.x;x++)
49.               {
50.                KQPT[count].x=A.x;
51.                    KQPT[count++].y=x;
52.               }  return count ;
53.        }
54.   if(A.x>B.x)
55.         {
56.           tPT=A ;
57.        A=B;
58.        B=tPT;
59.        }
60. /*he so goc<0*/
61.   if(A.y>B.y)
62.     {
63.           f1=TRUE;
64.           tPT=B;
65.         B.x=2*B.x-A.x;
66.        B.x=A.y;
67.         A=tPT;
68.     }
69. /*he so goc >1*/
70.    if((B.y-A.y)>(B.x-A.x))
71.          {
72.             f2=TRUE;
73.             x=A.x;
74.          A.x=A.y;
75.          A.y=x;
76.             x=B.x;
77.          B.x=B.y;
78.          B.y=x;
79.         }
80. /*tinh toan*/
81.       x=A.x;
82.       y=A.y;
83.       dx=B.x-A.x;
84.       dy=B.y-A.y;
85.       p=dy-dx/2;
86.   for(count=0;x<=B.x;x++)
87.         {
88.          KQPT[count].x=x;
89.              KQPT[count++].y=y;
90.              if(p<=0)
91.                {
92.                     p+=dy;
93.                }
94.              else
95.             {
96.                     y++;
97.                     p+=dy-dx;
98.                }
99.        }
100. /*kiem tra tinh hop le*/
101.   if(f2)
102.   for( i=0;i<count;i++)
103.      {
104.        x=KQPT[i].x;
105.        KQPT[i].x=KQPT[i].y;
106.        KQPT[i].y=x;
107.      }
108.   if(f1)
109.   for(i=0;i<count;i++)
110.       {
111.        KQPT[i].x=2*tPT.x-KQPT[i].x;
112.       }
113.     return count;
114. }
115. int main()
116. {
117.     int   i,count;point A,B;
118.     point KQPT[640];
119.
120.     /* request auto detection */
121.     int gdriver = DETECT, gmode, errorcode;
122.
123.     /*Nhap du lieu*/
124. //  clrscr();
125.     printf("Nhap toa do diem thu nhat:\n");
126.     printf("\nxA="); scanf("%d",&A.x);
127.     printf("\nyA="); scanf("%d",&A.y);
128.     printf("Nhap toa do diem thu hai:\n");
129.     printf("\nxB="); scanf("%d",&B.x);
130.     printf("\nyB="); scanf("%d",&B.y);
131.
132.     /*Khoi dong che do do hoa*/
133.     initgraph(&gdriver, &gmode, "C:\\BC31\\BGI");
134.     errorcode = graphresult();
135.     if (errorcode != grOk)  /* an error occurred */
136.     {
137.         printf("Graphics error: %s\n", grapherrormsg(errorcode));
138.         printf("Press any key to halt:");
139.         getch();
140.     exit(1);             /* return with error code */
141.     }
142.
143.     /*Thuc hien ve*/
144.     count= MDline(A,B, KQPT);
145.     for(i= 0; i< count; i++)
146.         putpixel(KQPT[i].x, KQPT[i].y,12);
147.     /*Ket thuc*/
148.     getch();
149.     closegraph();
150. }

3. Awaiting Email Confirmation
Ngày gia nhập
12 2007
Bài viết
5
thank bạn minh dung dev c ++ thi nó báo lỗi cannot find -lobjc
ld returned 1 exit status bạn có biết tại sao không mình đã cài thêm thu­ viện đồ họa và chỉnh lại đuo­ng đẫn

4. Mình ko chắc lắm, nhưng mình nghĩ nó thiếu file obj. Bạn hãy dùng tiện ích BgiObj để tạo file .obj từ file .bgi

#### Quyền hạn của bạn

• Bạn không thể gửi đề tài mới
• Bạn không thể gửi bài trả lời
• Bạn không thể gửi các đính kèm
• Bạn không thể chỉnh sửa bài viết của bạn