#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
#include<graphics.h>
#define MAX 50
int X1, X2, Y1, Y2;
TCHAR s[5];
struct {
int x, y;
}zuobiao[MAX];
void display(double distance) {
settextcolor(RED);
_stprintf(s, _T("%f"), distance); // 高版本 VC 推荐使用 _stprintf_s 函数
settextcolor(RED);
outtextxy(10, 580, s);
outtextxy(115, 580, '(');
_stprintf(s, _T("%d"), X1);
outtextxy(120, 580, s);
outtextxy(155, 580, ',');
_stprintf(s, _T("%d"), Y1);
outtextxy(160, 580, s);
outtextxy(185, 580, ')');
outtextxy(215, 580, '(');
_stprintf(s, _T("%d"), X2);
outtextxy(220, 580, s);
outtextxy(255, 580, ',');
_stprintf(s, _T("%d"), Y2);
outtextxy(260, 580, s);
outtextxy(285, 580, ')');
}
double zuijin()
{
char c = ‘o’;
int i, j, t;
int d2 = 1460000;
srand((unsigned)time(NULL));
int n = 20;//产生点的个数
for (i = 0; i < n; i++) {
zuobiao[i].x = rand() % 1100 + 1;
zuobiao[i].y = rand() % 500 + 1;
setfillcolor(BLACK);
setlinecolor(BLACK);
for(int i = 0;i<n;i++)
fillcircle(zuobiao[i].x, zuobiao[i].y, 2);
}
for (i = 0; i < n-1 ; i++)
for (j = i + 1; j < n; j++) {
t = (zuobiao[i].x - zuobiao[j].x) * (zuobiao[i].x - zuobiao[j].x) + (zuobiao[i].y - zuobiao[j].y) * (zuobiao[i].y - zuobiao[j].y);
setlinecolor(BLUE);
line(zuobiao[i].x, zuobiao[i].y, zuobiao[j].x, zuobiao[j].y);
Sleep(50);
if (t < d2) {
d2 = t;
setlinecolor(RED);
line(zuobiao[i].x, zuobiao[i].y, zuobiao[j].x, zuobiao[j].y);
Sleep(50);
setlinecolor(WHITE);
line(X1,Y1,X2,Y2);
setlinecolor(BLACK);
setfillcolor(BLACK);
for (int i = 0; i < n; i++)
fillcircle(zuobiao[i].x, zuobiao[i].y, 2);
X1 = zuobiao[i].x;
X2 = zuobiao[j].x;
Y1 = zuobiao[i].y;
Y2 = zuobiao[j].y;
}
else {
setlinecolor(WHITE);
line(zuobiao[i].x, zuobiao[i].y, zuobiao[j].x, zuobiao[j].y);
setlinecolor(BLACK);
setfillcolor(BLACK);
for (int i = 0; i < n; i++)
fillcircle(zuobiao[i].x, zuobiao[i].y, 2);
setlinecolor(RED);
line(X1, Y1, X2, Y2);
}
}
return sqrt(d2);
}
int main() {
initgraph(1200,600);
setbkcolor(WHITE);
cleardevice();
double distance = zuijin();
display(distance);
while (1);
return 0;
}
视频链接:https://www.bilibili.com/video/BV1Xq4y1j7nB