def draw_dual(self, tube): self.cone_handles = [] self.trans = com_target.p apex = [0., 0., self.acc_scale * -9.81] + self.trans colors = [(0.5, 0.5, 0., 0.3), (0., 0.5, 0.5, 0.3)] if tube.start_stance.label.startswith('SS'): colors.reverse() for (stance_id, cone_vertices) in enumerate(tube.dual_vrep): color = colors[stance_id] vscale = [self.acc_scale * array(v) + self.trans for v in cone_vertices] self.cone_handles.extend(draw_cone( apex=apex, axis=[0, 0, 1], section=vscale[1:], combined='r-#', color=color))
def draw(self, acc_scale=0.05): from pymanoid.gui import draw_cone, draw_polyhedron handles = [] cyan, yellow = (0., 0.5, 0.5, 0.3), (0.5, 0.5, 0., 0.3) handles.extend(draw_polyhedron(self.primal_vrep, '*.-#', color=cyan)) origin = self.primal_vrep[0] apex = origin + [0., 0., acc_scale * -9.81] vscale = [acc_scale * array(v) + origin for v in self.dual_vrep] handles.extend( draw_cone(apex=apex, axis=[0, 0, 1], section=vscale[1:], combined='r-#', color=yellow)) return handles