如何测试点是否在区域之外

时间:2019-07-15 11:33:21

标签: graphics geometry

我有一个问题,我需要测试一个点是否在区域之外。

该区域是二维的,如下图所示。

enter image description here

该区域首先由一个以a(ax,ay)为中心,半径为r的圆生成。

然后,t减小,圆移动并变大,其中心为a / t,半径为r / t(0

生长方向由向量 v (cx-ax,cy-ay)表示

现在,我有一个点(x,y)。如何判断区域外或区域内的点?

1 个答案:

答案 0 :(得分:1)

从图形中,圆沿直线离开其起点a,称为向量v。对于此向量上的每个位置,您都可以确定t的值。

要确定点x是否位于生成的圆锥体内:

  • 确定v和穿过v'的垂直向量x之间的交点。称为I
  • 根据t来确定I - a的值,也就是“沿v的交点多远”
  • 给出t,检查是否||I - x|| <= r/t

对于边界条件(即x位于a之后的半圆中),只需测试是否||x - a|| <= r