def __init__(self, **kwargs): digest_config(self, kwargs) start = self.unit_size * self.x_min * RIGHT end = self.unit_size * self.x_max * RIGHT Line.__init__(self, start, end, **kwargs) self.shift(-self.number_to_point(self.number_at_center)) self.init_leftmost_tick() if self.include_tip: self.add_tip() if self.include_ticks: self.add_tick_marks() if self.include_numbers: self.add_numbers()
def __init__(self, **kwargs): if not hasattr(self, "args"): self.args = serialize_args([]) if not hasattr(self, "config"): self.config = serialize_config({ **kwargs, }) digest_config(self, kwargs) start = self.unit_size * self.x_min * RIGHT end = self.unit_size * self.x_max * RIGHT Line.__init__(self, start, end, **kwargs) self.shift(-self.number_to_point(self.number_at_center)) self.init_leftmost_tick() if self.include_tip: self.add_tip() if self.include_ticks: self.add_tick_marks() if self.include_numbers: self.add_numbers()
def __init__(self, *args, **kwargs): self.normal_vector = OUT digest_config(self, kwargs) self.start = LEFT self.end = RIGHT args = list(args) for i in range(len(args)): if isinstance(args[i], (Mobject, VMobject)): args[i] = list(args[i].get_center()) if len(args) == 2: try: isinstance(args[0], (list)) except: try: isinstance(args[0], (int, float)) except: raise Exception("Not Supported") else: try: isinstance(args[1], (list, tuple)) except: raise Exception( "not form of two points or point displacement") else: if isinstance(args[1], (list,np.ndarray)): self.start, self.end = args if isinstance(args[1], (tuple)): self.start, self.end = args[0], np.sum( args, 0) elif len(args) == 3: try: isinstance(args[0], (list)) except: raise Exception("args[0]!=point") else: try: isinstance(args[1], (int, float, list, tuple)) and isinstance( args[2], (int, float)) except: raise Exception( "not form of point slope length or point direction length") else: if (isinstance(args[1], (int, float)) and isinstance(args[2], (int, float))): hypotenuse = (1.+args[1]**2.)**0.5 self.start, self.end = args[0], args[0]+args[2]*np.array( [1/hypotenuse, args[1]/hypotenuse, 0]) if isinstance(args[1], (list)): direction = 1 for each in args[1]: direction -= each**2 direction = args[1]+[0, direction, 0][len(args[1]):] self.start, self.end = args[0], args[0] + \ args[2]*np.array(direction) if isinstance(args[1], (tuple)): self.start, self.end = args[0], args[0] + \ np.multiply(args[1], args[2]/get_norm(args[1])) Line.__init__(self, self.start, self.end, **kwargs)