【计几】三维计算几何基础

这篇博客探讨了三维空间中点和平面的相关计算,包括点的坐标结构、三棱锥体积的计算、平面的法向量、有向面积、点的位置判断、点到面的距离以及六面体体积的确定。这些概念和函数在三维几何和计算机图形学中至关重要。

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

点(Point)

struct point{
    double x, y, z;
};

double volume(point a, point b, point c, point d) { return dot(cross(b - a, c - a), d - a); } // 返回混合积[b-a c-a d-a],等价于(a->b->c)->d三棱锥的有向体积
  • 其他函数也都要改成三维的,因为忘记加第三维出过bug。

平面(Plane)

struct plane{
    int v[3]; // 每个面的点规定都是逆时针储存的
    
    point norm() { return cross(P[v[1]] - P[v[0]], P[v[2]] - P[v[0]]); }  // 法向量
    double area() { return length(norm()) / 2; }                          // 三点围成的有向面积
    bool above(point a) { return dot(a - P[v[0]], norm()) >= 0; }         // 判断点是否在面的上方
    double dis(point a) { return project(a - P[v[0]], norm()); }          //点到面的有向距离
    double volume(point a) { return dot(norm(), a - P[v[0]]); }           //返回六面体的体积
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值