多少线路遇到障碍

时间:2011-12-27 19:09:17

标签: c# visual-studio visual-studio-2010 algorithm drawing

我有一个问题需要解决。看图片: Image

  • 红色填充椭圆是一个障碍。
  • 黑点是“道路”的开始和结束。
  • 蓝线,是从一个点到另一个点的最短路径。

我使用鼠标绘制障碍物(鼠标点击创建椭圆),然后我放入开始和结束的绳索,然后我使用DrawLine从点到点绘制线条。这里的问题是,我如何检查或计算线的多少像素,通过障碍?

我想在绘制线之前将每个像素颜色放在2D数组中,然后以某种方式检查数字,从点到点计算最短路径,并检查它中会遇到多少255个(障碍物数量)阵列?如你所见,我可以通过这种方式创造障碍,因此线条将通过中间,只是其中的一部分,甚至是它旁边。我根本不知道该怎么做。我需要它,所以我可以评价每条“道路”。越是障碍,它就越少。

有什么想法吗?任何算法?

1 个答案:

答案 0 :(得分:4)

  1. 使用ellipseline的等式,找到线与椭圆轮廓的交点(可能有2个,1个或没有交点)。您可以找到此here
  2. 的有效示例
  3. 如果确实有2个交叉点,请使用distance formula计算它们之间的距离。