ACM计算几何模板

    xiaoxiao2026-01-08  5

    1. 判断空间三点共线

    点的储存方式:

    判断空间三点共线 假设三点为p[i] p[j] p[k]

    方法1(推荐):

    原理:共线两向量成比例 即 x2/x1=y2/y1=z2/z1

    方法2:利用点积求cos角

    方法3:利用中间点到外边两点距离和等于外边两点距离和

    2.判断四点能否组成四面体

    点的储存方式:

    只要判断组成的四面体体积是否为0即可。

    四面体体积为为四点组成的三个向量的混合积除以6。

    设四点分别为 p[i] p[j] p[k] p[l]

    LL为long long

    3.点积与叉积概要

    点积就是 p1*p2=x1*x2+y1*y2 也是 p1*p2=|p1|*|p2|*cosθ 叉积就是 p1×p2=x1*y2-x2*y1 也是 p1×p2=|p1|*|p2|*sinθ

    所以一些在数学上需要用sin或者cos的都可以用点积或者叉积来判断

    这里需要注意: 角度是按逆时针来计算的

    如计算点积,角度是向量p1逆时针转到p2的角度

    如计算叉积,角度同样是p1 逆时针旋转到p2的角度

    比如判断点q在直线p1 p2 上,就是角度为0或者180度,用sin来判断,所以用叉积,如果要再判断q是否在线段p1 p2上,假设在线段p1 p2内,则p1q 和p2q的θ应为180度,用cosθ小于等于0判断即可。

    比如计算向量p1逆时针方向的[0,90)度的点就是sinθ大于等于零,cosθ大于0,相应的使用叉积与点积。

    在[90,180)之间的就是sinθ大于等于,cosθ小于等0

    转载请注明原文地址: https://ju.6miu.com/read-1305789.html
    最新回复(0)