def display_cars(self, cars): car_lines = [] for _ in range(len(cars)): n = randint(0, len(self.roads)-1) car_lines.append(self.roads[n]) for n in range(len(self.roads)-1): road = self.roads[n] line_data = road.get_data() x_min, x_max = self.lineX(line_data) y_min, y_max = self.lineY(line_data) locX = (x_max - x_min) / 2 + x_min locY = (y_max - y_min) / 2 + y_min plot2d.lineTxt(locX, locY, n + 1) # temporal variable to hold values of cars points = [[], []] # get X cars in the graph i = 0 for car in cars: i += 1 random_index = randrange(len(car_lines)) car.currentRoad = int(random_index) car_line = car_lines[random_index] point = car_line.get_xydata()[0] # first point in the graph # calculate the angle line_data = car_line.get_data() ang = self.calculateAngle(line_data) car.prop = self.carProp(point, ang, x_min, x_max, y_min, y_max) # for the even cars shift angle to negative # so that it goes in opposite direction from car1 car.i = i if i % 2 == 0: ang = ang + math.pi # for this car get the last point as positions point = car_line.get_xydata()[-1] x_min, x_max = self.lineX(line_data) y_min, y_max = self.lineY(line_data) car.initial = self.carPoint(point) # add scatter points[0].append(point[0]) points[1].append(point[1]) self.speed(car) # Get Speed # plot cars self.scatter = plot2d.scatter(points[0], points[1])
def display_cars(self, cars): car_lines = [] for _ in range(len(cars)): n = randint(0, len(self.roads) - 1) car_lines.append(self.roads[n]) for n in range(len(self.roads) - 1): road = self.roads[n] line_data = road.get_data() x_min, x_max = self.lineX(line_data) y_min, y_max = self.lineY(line_data) locX = (x_max - x_min) / 2 + x_min locY = (y_max - y_min) / 2 + y_min plot2d.lineTxt(locX, locY, n + 1) # temporal variable to hold values of cars points = [[], []] # get X cars in the graph i = 0 for car in cars: i += 1 random_index = randrange(len(car_lines)) car.currentRoad = int(random_index) car_line = car_lines[random_index] point = car_line.get_xydata()[0] # first point in the graph # calculate the angle line_data = car_line.get_data() ang = self.calculateAngle(line_data) car.prop = self.carProp(point, ang, x_min, x_max, y_min, y_max) # for the even cars shift angle to negative # so that it goes in opposite direction from car1 car.i = i if i % 2 == 0: ang = ang + math.pi # for this car get the last point as positions point = car_line.get_xydata()[-1] x_min, x_max = self.lineX(line_data) y_min, y_max = self.lineY(line_data) car.initial = self.carPoint(point) # add scatter points[0].append(point[0]) points[1].append(point[1]) self.speed(car) # Get Speed # plot cars self.scatter = plot2d.scatter(points[0], points[1])