给出两直线经过的两点,没有平行的情况,求两直线最短距离和最短距离的两点。
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <math.h>
using namespace std;
const double eps = 1e-8;
//三维空间点
struct Point
{
double x, y, z;
Point(double x=0,double y=0,double z=0): x(x),y(y),z(z){}
Point(const Point& a)
{
x = a.x;
y = a.y;
z = a.z;
return;
}
void Print()
{
printf("%lf %lf %lf\n", x, y, z);
}
Point operator + (Point &t)
{
return Point(x+t.x, y+t.y, z+t.z);
}
};
//空间直线
struct Line
{
Point a,b;
};
//空间平面
struct Plane
{
Point a,b,c;
Plane(){}
Plane(Point a, Point b, Point c):a(a),b(b),c(c){}
void showPlane()
{
a.Print();
b.Print();
c.Print();
retur