这个C程序的数学原理是什么?
有4个圆塔,圆心分别为(2,2)、(-2.2)、(-2,-2)、(2,-2),圆半径为1。这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。此题的程序倒是没有什么难度,但自己不清楚为什么要这么写,它的数学原理是什么?
应该与直角坐标系有关吧!
中学的很多东西都不记得了!!
#include <stdio.h>
void main()
{
int h=10;
float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4;
printf("Please input a point(x,y):");
scanf("%f,%f",&x,&y);
d1=(x-x4)*(x-x4)+(y-y4)*(y-y4);
d2=(x-x1)*(x-x1)+(y-y1)*(y-y1);
d3=(x-x2)*(x-x2)+(y-y2)*(y-y2);
d4=(x-x3)*(x-x3)+(y-y3)*(y-y3);
if (d1>1 && d2>1 && d3>1 && d4>1)
h=0;
printf("The point's h:%d\n",h);
}