3329 Twirl Around

Posted on 2010-03-21 00:36 王之昊 阅读(197) 评论(0)  编辑 收藏 引用 所属分类: pku
  这道题模拟,已知一个支点,去寻找下一个支点,累加这期间的角度直到转到满意的角度为止。把绕支点的转动看成一个圆,把多边形的每条线段看成障碍物。现在来考虑一些特殊位置。

 

出题者应该会避免相切的数据。和当前木棍在同一直线上的特殊点,一种可以根据线段的中心确定它会不会阻挡。

 

 另外一种连中心也在同一条直线上。这时认为在有木棍实体的那侧的特殊点不会阻挡,而另一侧会。

 

 

总的来说,障碍物(一条线段)他可能出现的位置是0~360。而难区分的是0度和360度。如果发现一个点落在0度或360度的位置时,通过判断障碍物在左边(包括平行的时候)还是在右边来确定会不会阻挡。

还可以通过让木棍转动一个小的角度,看一下是远离障碍物,还是和障碍物相交来确定是否会阻挡。


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


posts - 26, comments - 7, trackbacks - 0, articles - 17

Copyright © 王之昊