Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
A2C = random_transform(random_state)
D2B = random_transform(random_state)
tm = TransformManager()
tm.add_transform("A", "world", A2world)
tm.add_transform("B", "world", B2world)
tm.add_transform("A", "C", A2C)
tm.add_transform("D", "B", D2B)
plt.figure(figsize=(10, 5))
ax = make_3d_axis(3, 121)
ax = tm.plot_frames_in("world", ax=ax, alpha=0.6)
ax.view_init(30, 20)
ax = make_3d_axis(3, 122)
ax = tm.plot_frames_in("A", ax=ax, alpha=0.6)
ax.view_init(30, 20)
plt.show()
random_state = np.random.RandomState(0)
A2world = random_transform(random_state)
B2world = random_transform(random_state)
A2C = random_transform(random_state)
D2B = random_transform(random_state)
tm = TransformManager()
tm.add_transform("A", "world", A2world)
tm.add_transform("B", "world", B2world)
tm.add_transform("A", "C", A2C)
tm.add_transform("D", "B", D2B)
plt.figure(figsize=(10, 5))
ax = make_3d_axis(3, 121)
ax = tm.plot_frames_in("world", ax=ax, alpha=0.6)
ax.view_init(30, 20)
ax = make_3d_axis(3, 122)
ax = tm.plot_frames_in("A", ax=ax, alpha=0.6)
ax.view_init(30, 20)
plt.show()
ax_s : float, optional (default: 1)
Scaling of the new matplotlib 3d axis
kwargs : dict, optional (default: {})
Additional arguments for the plotting functions, e.g. alpha
Returns
-------
ax : Matplotlib 3d axis
New or old axis
"""
if P is None or len(P) == 0:
raise ValueError("Trajectory does not contain any elements.")
if ax is None:
ax = make_3d_axis(ax_s)
H = matrices_from_pos_quat(P)
trajectory = Trajectory(H, show_direction, n_frames, s, **kwargs)
trajectory.add_trajectory(ax)
return ax
frame : string
Reference frame
ax : Matplotlib 3d axis, optional (default: None)
If the axis is None, a new 3d axis will be created
ax_s : float, optional (default: 1)
Scaling of the new matplotlib 3d axis
Returns
-------
ax : Matplotlib 3d axis
New or old axis
"""
if ax is None:
ax = make_3d_axis(ax_s)
for obj in objects:
ax = obj.plot(self, frame, ax)
return ax
Both frames of a connection must be in the whitelist to plot the
connection
kwargs : dict, optional (default: {})
Additional arguments for the plotting functions, e.g. alpha
Returns
-------
ax : Matplotlib 3d axis
New or old axis
"""
if frame not in self.nodes:
raise KeyError("Unknown frame '%s'" % frame)
if ax is None:
ax = make_3d_axis(ax_s)
nodes = self._whitelisted_nodes(whitelist)
if "c" not in kwargs and "color" not in kwargs:
kwargs["color"] = "black"
for frame_names, transform in self.transforms.items():
from_frame, to_frame = frame_names
if from_frame in nodes and to_frame in nodes:
try:
from2ref = self.get_transform(from_frame, frame)
to2ref = self.get_transform(to_frame, frame)
ax.plot(
(from2ref[0, 3], to2ref[0, 3]),
(from2ref[1, 3], to2ref[1, 3]),
(from2ref[2, 3], to2ref[2, 3]),
Scaling of the axis and angle that will be drawn
ax_s : float, optional (default: 1)
Scaling of the new matplotlib 3d axis
kwargs : dict, optional (default: {})
Additional arguments for the plotting functions, e.g. alpha
Returns
-------
ax : Matplotlib 3d axis
New or old axis
"""
a = check_axis_angle(a)
if ax is None:
ax = make_3d_axis(ax_s)
axis_arrow = Arrow3D(
[p[0], p[0] + s * a[0]],
[p[1], p[1] + s * a[1]],
[p[2], p[2] + s * a[2]],
mutation_scale=20, lw=3, arrowstyle="-|>", color="k")
ax.add_artist(axis_arrow)
p1 = (unitx if np.abs(a[0]) <= np.finfo(float).eps else
perpendicular_to_vectors(unity, a[:3]))
p2 = perpendicular_to_vectors(a[:3], p1)
angle_p1p2 = angle_between_vectors(p1, p2)
arc = np.empty((100, 3))
for i, t in enumerate(np.linspace(0, 2 * a[3] / np.pi, 100)):
w1, w2 = _slerp_weights(angle_p1p2, t)
ax_s : float, optional (default: 1)
Scaling of the new matplotlib 3d axis
name : string, optional (default: None)
Name of the frame, will be used for annotation
kwargs : dict, optional (default: {})
Additional arguments for the plotting functions, e.g. alpha
Returns
-------
ax : Matplotlib 3d axis
New or old axis
"""
if ax is None:
ax = make_3d_axis(ax_s)
if A2B is None:
A2B = np.eye(4)
A2B = check_transform(A2B)
frame = Frame(A2B, name, s, **kwargs)
frame.add_frame(ax)
return ax
s : float, optional (default: 1)
Scaling of the frame that will be drawn
ax_s : float, optional (default: 1)
Scaling of the new matplotlib 3d axis
kwargs : dict, optional (default: {})
Additional arguments for the plotting functions, e.g. alpha
Returns
-------
ax : Matplotlib 3d axis
New or old axis
"""
if ax is None:
ax = make_3d_axis(ax_s)
if R is None:
R = np.eye(3)
R = check_matrix(R)
A2B = np.eye(4)
A2B[:3, :3] = R
A2B[:3, 3] = p
frame = Frame(A2B, s=s, **kwargs)
frame.add_frame(ax)
return ax