# -*- coding: utf-8 -*- """ Example showing a single disc throw. """ from shotshaper.projectile import DiscGolfDisc import matplotlib.pyplot as pl import numpy as np import plotly.express as px d = DiscGolfDisc('dd2') U = 24.2 omega = 116.8 z0 = 1.3 pos = np.array((0,0,z0)) pitch = 15.5 nose = 0.0 roll = 14.7 shot = d.shoot(speed=U, omega=omega, pitch=pitch, position=pos, nose_angle=nose, roll_angle=roll) # Plot trajectory pl.figure(1) x,y,z = shot.position pl.plot(x,y) fig = px.scatter(x,y) fig.show() pl.xlabel('Distance (m)') pl.ylabel('Drift (m)') pl.axis('equal') # Plot other parameters arc,alphas,betas,lifts,drags,moms,rolls = d.post_process(shot, omega) fig, axes = pl.subplots(nrows=2, ncols=3, dpi=80,figsize=(13,5)) axes[0,0].plot(arc, lifts) axes[0,0].set_xlabel('Distance (m)') axes[0,0].set_ylabel('Lift force (N)') axes[0,1].plot(arc, drags) axes[0,1].set_xlabel('Distance (m)') axes[0,1].set_ylabel('Drag force (N)') axes[0,2].plot(arc, moms) axes[0,2].set_xlabel('Distance (m)') axes[0,2].set_ylabel('Moment (Nm)') axes[1,0].plot(arc, alphas) axes[1,0].set_xlabel('Distance (m)') axes[1,0].set_ylabel('Angle of attack (deg)') axes[1,1].plot(arc, shot.velocity[0,:]) axes[1,1].plot(arc, shot.velocity[1,:]) axes[1,1].plot(arc, shot.velocity[2,:]) axes[1,1].set_xlabel('Distance (m)') axes[1,1].set_ylabel('Velocities (m/s)') axes[1,1].legend(('u','v','w')) axes[1,2].plot(arc, rolls) axes[1,2].set_xlabel('Distance (m)') axes[1,2].set_ylabel('Roll rate (rad/s)') pl.tight_layout() pl.show()