Source code for skydy.output.Arrow3D
#!/usr/bin/python3
from matplotlib.patches import FancyArrowPatch
from mpl_toolkits.mplot3d import proj3d
[docs]class Arrow3D(FancyArrowPatch):
[docs] def __init__(self, xs, ys, zs, *args, **kwargs):
"""Create a 3D Arrow."""
FancyArrowPatch.__init__(self, (0, 0), (0, 0), *args, **kwargs)
self.__verts3d = xs, ys, zs
[docs] def draw(self, renderer):
xs3d, ys3d, zs3d = self.__verts3d
xs, ys, _zs = proj3d.proj_transform(xs3d, ys3d, zs3d, self.axes.M)
self.set_positions((xs[0], ys[0]), (xs[1], ys[1]))
FancyArrowPatch.draw(self, renderer)