Пример #1
0
 def _set_skew_on_events(self, track: Track):
     e: Event
     for e in self.events:
         (track_bearing,
          _) = track.get_bearing_and_distance_to_next_waypoint(
              e.before_waypoint_index)
         e.skew = get_turn_between_directions(track_bearing, e.true_bearing)
    def show_event(self, event: Event, track: Track):
        (previous_bearing,
         _) = track.get_bearing_and_distance_from_previous_waypoint(
             event.before_waypoint_index)
        (current_bearing, _) = track.get_bearing_and_distance_to_next_waypoint(
            event.before_waypoint_index)
        (next_bearing, _) = track.get_bearing_and_distance_to_next_waypoint(
            event.after_waypoint_index)

        self.waypoint_lap_position.set(
            str(
                round(
                    track.get_waypoint_percent_from_race_start(
                        event.closest_waypoint_index), 1)) + "  %")
        self.waypoint_previous_id.set(str(event.before_waypoint_index))
        self.waypoint_closest_id.set(str(event.closest_waypoint_index))
        self.waypoint_next_id.set(str(event.after_waypoint_index))

        self.waypoint_previous_bearing.set(str(round(previous_bearing)))
        self.waypoint_current_bearing.set(str(round(current_bearing)))
        self.waypoint_next_bearing.set(str(round(next_bearing)))

        self.state_progress.set(str(round(event.progress, 1)) + "  %")
        self.state_time.set(str(round(event.time_elapsed, 1)) + "  secs")
        self.state_step.set(str(event.step))
        self.state_track_speed.set(str(round(event.track_speed, 1)) + "  m/s")
        self.state_progress_speed.set(
            str(round(event.progress_speed, 1)) + "  m/s")
        self.state_heading.set(str(round(event.heading)))
        self.state_true_bearing.set(str(round(event.true_bearing)))
        self.state_slide.set(str(round(event.slide)))
        self.state_skew.set(str(round(event.skew)))
        self.state_side.set(
            track.get_position_of_point_relative_to_waypoint(
                (event.x, event.y), event.closest_waypoint_index))
        self.state_distance_from_centre.set(
            str(round(event.distance_from_center, 2)))
        self.state_all_wheels_on_track.set(str(event.all_wheels_on_track))
        if event.acceleration > 0.0:
            self.state_acceleration.set(
                str(round(event.acceleration, 1)) + "  m/s/s")
        else:
            self.state_acceleration.set("---")
        if event.braking > 0.0:
            self.state_braking.set(str(round(event.braking, 1)) + "  m/s/s")
        else:
            self.state_braking.set("---")
        self.state_projected_travel_distance.set(
            str(round(event.projected_travel_distance, 1)) + " m")

        self.action_id.set(str(event.action_taken))
        self.action_steering.set(get_formatted_steering(event.steering_angle))
        self.action_speed.set(str(event.speed) + "  m/s")
        self.action_sequence.set(str(event.sequence_count))

        self.reward_value.set(get_pretty_large_float(round(event.reward, 5)))
        self.reward_average.set(
            get_pretty_large_integer(event.average_reward_so_far))
        self.reward_total.set(get_pretty_large_integer(event.reward_total))
        self.discounted_future_reward.set(
            get_pretty_large_integer(event.discounted_future_rewards[0]))
        if self._config_manager.get_calculate_new_reward():
            self.new_reward.set(
                get_pretty_large_float(round(event.new_reward, 5)))
            self.new_discounted_future_reward.set(
                get_pretty_large_integer(event.new_discounted_future_reward))

        if self._config_manager.get_calculate_alternate_discount_factors():
            for i, r in enumerate(self.other_discounted_future_rewards):
                r.set(
                    get_pretty_large_integer(
                        event.discounted_future_rewards[i + 1]))

        self.debug_output.set(get_formatted_debug(
            event.debug_log, 10, 80, []))  # TODO - expose configuration
        self.lift()