我可以使用什么算法来确定半圆内的点?

时间:2010-06-09 17:53:22

标签: count points

如何在具有多个“中心”的网格上执行此操作,因此,具有重合点,我只想计算一次?

最有效的方法是什么?

1 个答案:

答案 0 :(得分:4)

要确定某个点P是否属于半圆,我会考虑进行两部分测试:

  1. P的半径为RC
  2. P是否在正确(即占用)的半平面上?
  3. 第(1)部分很简单:比较(P_x-C_x)^2 + (P_y-C_y)^2(在2d中,在3d中添加Z方向,当然)与R^2(不要打扰平方根,需要时间并且不添加任何东西)。

    第(2)部分几乎一样容易:定义向量b = B - C,它将指向被占半平面的半圆一分为二。然后计算向量v = P - C并将点积与b一起使用。如果结果为正,则该点位于占用的半平面中,如果为负,则该点位于未占用的半位,如果为0,则该点落在分界线上。像往常一样,2d中的点积为v*b = v_x*b_x + v_y*b_y