def do_3d_projection(self, renderer): from mpl_toolkits.mplot3d import proj3d from mpl_toolkits.mplot3d.art3d import zalpha from matplotlib import colors as mcolors # transform and sort in z direction v = np.array( proj3d.proj_transform_clip(*self._offsets3d, M=renderer.M)[:3]) idx = v[2].argsort()[::-1] vzs = v[2, idx] self.set_offsets(v[:2, idx].transpose()) super().set_array(self._A0[idx]) fcs = zalpha(self._facecolor3d, vzs) if self._depthshade else self._facecolor3d fcs = mcolors.colorConverter.to_rgba_array(fcs, self._alpha) self.set_facecolors(fcs) ecs = zalpha(self._edgecolor3d, vzs) if self._depthshade else self._edgecolor3d ecs = mcolors.colorConverter.to_rgba_array(ecs, self._alpha) self.set_edgecolors(ecs) return min(vzs) if vzs.size > 0 else np.nan
def do_3d_projection(self, renderer): from mpl_toolkits.mplot3d import proj3d from mpl_toolkits.mplot3d.art3d import zalpha from matplotlib import colors as mcolors # transform and sort in z direction v = np.array(proj3d.proj_transform_clip(*self._offsets3d, M=renderer.M)[:3]) idx = v[2].argsort()[::-1] vzs = v[2, idx] self.set_offsets(v[:2, idx].transpose()) super().set_array(self._A0[idx]) fcs = zalpha(self._facecolor3d, vzs) if self._depthshade else self._facecolor3d fcs = mcolors.colorConverter.to_rgba_array(fcs, self._alpha) self.set_facecolors(fcs) ecs = zalpha(self._edgecolor3d, vzs) if self._depthshade else self._edgecolor3d ecs = mcolors.colorConverter.to_rgba_array(ecs, self._alpha) self.set_edgecolors(ecs) return min(vzs) if vzs.size > 0 else np.nan
def do_3d_projection(self, renderer): s = self._segment3d xs, ys, zs = zip(*s) vxs, vys, vzs, vis = proj3d.proj_transform_clip(xs, ys, zs, renderer.M) self._path2d = Path(np.column_stack([vxs, vys]), self._code3d) return min(vzs)