假设两直线的式子分别为:
求解过程:
综上所述,交点的解为:
则有解,否则两直线平行。
补充:如果化成Y=kX+b的形式的话,得解为:
例题:Audio
给定三个不共线的点,要求输出一个点使得这个点到三个点的距离相同,输出保留三位小数。
#include<bits/stdc++.h>
using namespace std;
int main()
{
double x1,y1,x2,y2,x3,y3;
scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
double k1=(y1-y2)/(x1-x2),k2=(y1-y3)/(x1-x3);
k1=-1/k1,k2=-1/k2;
double x=(x1+x2)/2,y=(y1+y2)/2;
double b1=y-k1*x;
x=(x1+x3)/2,y=(y1+y3)/2;
double b2=y-k2*x;
double X=(b2-b1)/(k1-k2);
double Y=(k1*b2-k2*b1)/(k1-k2);
printf("%.3f %.3f\n",X,Y);
return 0;
}
版权声明:本文为qq_41117236原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。