当前位置: 首页>>代码示例>>Python>>正文


Python Polygon.covers方法代码示例

本文整理汇总了Python中Polygon.covers方法的典型用法代码示例。如果您正苦于以下问题:Python Polygon.covers方法的具体用法?Python Polygon.covers怎么用?Python Polygon.covers使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Polygon的用法示例。


在下文中一共展示了Polygon.covers方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: import Polygon [as 别名]
# 或者: from Polygon import covers [as 别名]

#.........这里部分代码省略.........
            
            #calculate the vector to follow the obstacle
            normal = mat([pose[0],pose[1]] - pt)
            
            #find the distance from the closest point
            distance = norm(normal)            
            velocity = normal * self.trans_matrix
            vx = (velocity/norm(velocity)/3)[0,0]
            vy = (velocity/norm(velocity)/3)[0,1]

            # push or pull the robot towards the obstacle depending on whether the robot is close or far from the obstacle.    
            turn = pi/4*(distance-0.5*self.obsRange)/(self.obsRange)    ### 5
            corr_matrix       = mat([[cos(turn),-sin(turn)],[sin(turn),cos(turn)]])
            v =  corr_matrix*mat([[vx],[vy]])                                     
            vx = v[0,0]          
            vy = v[1,0]
 
                
            ##plotting overlap on figure 2
            if self.PLOT_OVERLAP == True: 
                plt.figure(self.overlap_figure)
                plt.clf()    
                self.plotPoly(self.m_line,'b');
                self.plotPoly(overlap,'r');                       
                plt.plot(vx,vy,'ko')
                plt.plot(pt[0],pt[1],'ro')
                plt.plot(pose[0],pose[1],'bo')
                self.plotPioneer(self.overlap_figure,1)
                     
                
            ## conditions that the loop will end
            #for 11111
            RobotPoly = Circle(self.PioneerLengthHalf+0.06,(pose[0],pose[1]))   ####0.05
            arrived  = self.nextRegionPoly.covers(self.realRobot)
            
            #for 33333
            reachMLine= self.m_line.overlaps(RobotPoly)
            
            # 1.reached the next region
            if arrived:
                self.boundary_following = False
                self.q_hit_count       = 0
                print "arriving at the next region. Exit boundary following mode"
                vx = 0
                vy = 0
                
                """
                # 2.q_hit is reencountered
                elif norm(self.q_hit-mat([pose[0],pose[1]]).T) < 0.05 and self.q_hit_count > self.q_hit_Thres:   
                    print "reencounter q_hit. cannot reach q_goal"
                    vx = 0
                    vy = 0
                """
                
            # 3.m-line reencountered
            elif reachMLine:
                print >>sys.__stdout__, "m-line overlaps RoboPoly, m-line" + str(norm(self.q_g-self.q_hit)-2*self.obsRange) + " distance: " + str(norm(self.q_g-mat([pose[0],pose[1]]).T))
                if norm(self.q_g-mat([pose[0],pose[1]]).T) < norm(self.q_g-self.q_hit)-2*self.obsRange:
                    print "m-line overlaps RoboPoly, m-line" + str(norm(self.q_g-self.q_hit)-2*self.obsRange) + " distance: " + str(norm(self.q_g-mat([pose[0],pose[1]]).T))
                    print "leaving boundary following mode"
                    self.boundary_following = False
                    self.q_hit_count       = 0
                    leaving                = False
                    
                    # turn the robot till it is facing the goal 
                    while not leaving:
开发者ID:SMSmith,项目名称:LTLMoP,代码行数:70,代码来源:BugController.py


注:本文中的Polygon.covers方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。