Esempio n. 1
0
    def _final_coords(self, alpha, phi, params_dict=None):
        if params_dict is None:
            params_dict = self.gun_params
        p = {}
        for key in self.gun_params:
            p[key] = params_dict.get(key, self.gun_params[key])

        coords = (p["x"], p["y"], p["z"])
        angles = (alpha + p["alpha_0"], phi + p["phi_0"])
        v = p["v"]
        g = p["g"]
        gun_length = p["gun_length"]
        return ballistics.final_coords(coords, angles, v, g, gun_length)
Esempio n. 2
0
    def rotate_and_shoot(self, d_alpha=0.0, d_phi=0.0):
        self.alpha += d_alpha
        self.phi += d_phi

        # Randomize initial parameters
        alpha = self.randomize_alpha(self.alpha)
        phi = self.randomize_phi(self.phi)
        v = self.randomize_v(self.v)
        g = self.g

        # Take into account length of gun
        x = self.x0 + self.gun_length * cos(alpha) * cos(phi)
        y = self.x0 + self.gun_length * cos(alpha) * sin(phi)
        z = self.z0 + self.gun_length * sin(alpha)

        self.shot_x, self.shot_y = final_coords((x, y, z),
                                                (alpha, phi), v, g)
        return self.shot_x, self.shot_y