
如上图所示,AB两点连成一直线,加上眼睛视线方向,可以生成一个平面。现在该平面的法向是向上的,把图所示的平面切成两半。点C在该平面的上部分,我认为返回值为True,点D在下部分,我认为返回值为False。如果该点直接就在AB或者其延长线上,我也认为True。
这个算法应该不难。比如我想到的一个:
从C做垂线到AB,垂点设为C0, 然后C0-C的方向,如果和法向一致,我就认为在范围内,返回true,否则返回false。

但我的实际问题比这个更复杂一些,如上图所示:
我有AA1A2...An多条线段,加上眼睛视线的方向,能够组成多个平面,同样把图中平面切成两半,上半面和下半面。
其中,点C在上半面,我返回True,D在下半面,返回False。
但这个算法我就不知道怎么判断了?还有一条件,假设AA1A2...An是凸的,不是凹的(即相邻的两条线段的夹角>=90度)
我认为这应该是一个经典的问题,但我就是不知道呢。有没有图形学的大牛指点一下。谢谢!