hdoj 4741 异面直线求最近距离及最近点

该博客介绍了如何解决hdoj 4741问题,即在三维空间中找到两条异面直线之间的最短距离和最近点的方法。通过构建向量并寻找垂直平面,确定两直线的交点来求解。提供了上交大的解题模板。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hdoj 4741

拯救助手!

题意:建立时空隧道,连接Alpha与Beta世界线,求两世界线的最短距离和最近点位置。

思路:三维向量A、B叉乘结果是叉乘向量的垂直向量C,在原直线A上任选一点V向C移动,移动的这段向量也是和B垂直的,这时候用V和直线A做平面Alpha,Alpha就是B的垂直平面,同理可以得到A的垂直平面Beta,而Alpha与B的交点和Beta和A的交点就是两直线最近点,至于最近距离,可以用两点距离求,也可以直接套公式。

上交大的模板~

El Psy Congroo!

我是桶子。

#include <cstdio>
#include <cmath>
const double eps = 1e-8;
const double PI = acos(-1.0);
inline double Sqrt(double a){
    return a <= 0 ? 0 : sqrt(a);
}
inline double Sqr(double a){
    return a * a;
}
class Point_3{
public:
    double x, y, z;
    Point_3(){}
    Point_3(double x, double y, double z):x(x), y(y), z(z){}
    void input(){
        scanf("%lf %lf %lf", &x, &y, &z);
    }
    double Length() const{
        return Sqrt(Sqr(x) + Sqr(y) + Sqr(z));
    }
};
Point_3 operator + (const Po
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值