Pyqtgraph’s Scene¶
PyQtGraph 3D scene definition.
Classes:
| 
 | Class for plotting sympy mechanics in pyqtgraph. | 
- class symmeplot.pyqtgraph.scene.Scene3D(inertial_frame: sympy.physics.vector.frame.ReferenceFrame, zero_point: sympy.physics.vector.point.Point, view: GLViewWidget | None = None, **inertial_frame_properties: object)¶
- Bases: - SceneBase- Class for plotting sympy mechanics in pyqtgraph. - Parameters:
- inertial_frame ( - sympy.physics.vector.frame.ReferenceFrame) – The reference frame with respect to which all objects will be oriented.
- origin ( - sympy.physics.vector.point.Point) – The absolute origin with respect to which all objects will be positioned.
- view ( - pyqtgraph.opengl.GLViewWidget, optional) – The view in which the scene should be plotted. If None, a new view is created.
- **inertial_frame_properties ( - dict, optional) – Keyword arguments are parsed to the- symmeplot.pyqtgraph.plot_objects.PlotFramerepresenting the inertial reference frame.
 
 - Examples - import sympy.physics.mechanics as me from symmeplot.pyqtgraph import Scene3D N = me.ReferenceFrame("N") A = me.ReferenceFrame("A") A.orient_axis(N, N.z, 1) N0 = me.Point("N_0") v = 0.2 * N.x + 0.2 * N.y + 0.7 * N.z A0 = N0.locatenew("A_0", v) scene = Scene3D(N, N0, scale=0.5) scene.add_vector(v, name="v") scene.add_frame(A, A0, as_mesh=True) scene.lambdify_system(()) scene.evaluate_system() scene.plot() - Methods: - add_body(body, **kwargs)- Add a sympy body to the scene. - add_frame(frame[, origin])- Add a sympy ReferenceFrame to the scene. - add_line(points[, name])- Add a sympy Vector to the scene. - add_plot_object(plot_object)- Add a plot object to the scene. - add_point(point, **kwargs)- Add a sympy Vector to the scene. - add_vector(vector[, origin])- Add a sympy Vector to the scene. - animate(get_args, frames[, interval])- Animate the scene. - evaluate_system(*args)- Evaluate the system using the function created with - lambdify_system.- Return a tuple of the necessary expressions for plotting. - get_plot_object(sympy_object)- Return the plot_object based on a sympy object. - lambdify_system(args[, modules, printer, ...])- Lambdify the system. - plot()- Plot all plot objects. - set_visibility(sympy_object, is_visible[, ...])- Hide or show a - plot_objectbased on a- sympy_object.- update()- Update the objects on the scene, based on the current values. - Attributes: - Artists used to plot the object. - Plot objects. - The reference frame with respect to which all objects will be oriented. - Plot objects. - List of evaluated values for the object's variables. - The view in which the scene is plotted. - The absolute origin with respect to which all objects will be positioned. - add_body(body: Particle | RigidBody, **kwargs: object) PlotBase¶
- Add a sympy body to the scene. - Parameters:
- body ( - sympy.physics.mechanics.rigidbody.RigidBodyor- sympy.physics.mechanics.particle.Particle) – The body that should be plotted.
- **kwargs ( - dict, optional) – Kwargs that are parsed to both internally used plot objects.
 
- Returns:
- The added plot object. 
- Return type:
- PlotBody
 
 - add_frame(frame: ReferenceFrame, origin: Point | Vector | None = None, **kwargs: object) PlotBase¶
- Add a sympy ReferenceFrame to the scene. - Parameters:
- frame ( - sympy.physics.vector.frame.ReferenceFrame) – The reference frame that should be plotted.
- origin ( - sympy.physics.vector.point.Point,- sympy.physics.vector.vector.Vector, optional) – The origin of the reference frame. Default is the zero_point.
- **kwargs ( - dict, optional) – Kwargs that are parsed to plot object.
 
- Returns:
- The added plot object. 
- Return type:
- PlotFrame
 
 - add_line(points: Iterable[Point | Vector], name: str | None = None, **kwargs: object) PlotBase¶
- Add a sympy Vector to the scene. - Parameters:
- points ( - listof- sympy.physics.vector.point.Pointor- sympy.physics.vector.vector.Vector) – The points or vectors through which the line should be plotted.
- name ( - str, optional) – The name of the line. Default is None.
- **kwargs – Kwargs that are parsed to plot object. 
 
- Returns:
- The added plot object. 
- Return type:
- PlotLine
 
 - add_plot_object(plot_object: PlotBase) None¶
- Add a plot object to the scene. - Parameters:
- plot_object ( - PlotBase) – The plot object that should be added.
 
 - add_point(point: Point | Vector, **kwargs: object) PlotBase¶
- Add a sympy Vector to the scene. - Parameters:
- point ( - sympy.physics.vector.point.Pointor- sympy.physics.vector.vector.Vector) – The point or vector to be plotted as point in space.
- **kwargs – Keyword arguments are parsed to the plot object. 
 
- Returns:
- The added plot object. 
- Return type:
- PlotPoint
 
 - add_vector(vector: Vector, origin: Point | Vector | None = None, **kwargs: object) PlotBase¶
- Add a sympy Vector to the scene. - Parameters:
- vector ( - sympy.physics.vector.vector.Vector) – The vector that should be plotted with respect to the zero_point.
- origin ( - sympy.physics.vector.point.Point,- sympy.physics.vector.vector.Vector, optional) – The origin of the reference frame. Default is the zero_point.
- **kwargs ( - dict, optional) – Kwargs that are parsed to the plot object.
 
- Returns:
- The added plot object. 
- Return type:
- PlotVector
 
 - animate(get_args: Callable[[Any], tuple], frames: Iterable[Any] | int, interval: int = 30) None¶
- Animate the scene. - Parameters:
- get_args ( - Callable) – Function that returns the arguments for the- evaluate_systemmethod. The function should takes the current frame as input.
- frames ( - intor- iterable) – Number of frames or iterable with frames.
- interval ( - int, optional) – Time interval between frames in milliseconds. Default is 30.
 
 
 - property artists: tuple[ArtistBase, ...]¶
- Artists used to plot the object. 
 - evaluate_system(*args: object) None¶
- Evaluate the system using the function created with - lambdify_system.
 - get_expressions_to_evaluate() tuple¶
- Return a tuple of the necessary expressions for plotting. 
 - get_plot_object(sympy_object: object | str) PlotBase | None¶
- Return the plot_object based on a sympy object. - Explanation - Return the - plot_objectbased on a provided sympy object. For example- ReferenceFrame('N')will give the- PlotFrameof that reference frame. If the- plot_objecthas not been added it will return- None.- Parameters:
- sympy_object ( - objector- str) – SymPy object to search for. If it is a string it will search for the name.
- Returns:
- Retrieved plot object. 
- Return type:
- PlotBaseor- None
 
 - property inertial_frame: sympy.physics.vector.frame.ReferenceFrame¶
- The reference frame with respect to which all objects will be oriented. 
 - lambdify_system(args, modules=None, printer=None, use_imps=True, dummify=False, cse=True) Callable¶
- Lambdify the system. - Explanation - Lambdify the system for faster evaluation, when combined with - symmeplot.core.scene.SceneBase.evaluate_system(). See- sympy.utilities.lambdify.lambdify()for more information.
 - plot() None¶
- Plot all plot objects. 
 - set_visibility(sympy_object: object | str, is_visible: bool, raise_error: bool = True) None¶
- Hide or show a - plot_objectbased on a- sympy_object.- Parameters:
- sympy_object ( - sympy.physics.vector.point.Pointor- sympy.physics.vector.vector.Vectoror- sympy.physics.vector.frame.ReferenceFrameor- sympy.physics.mechanics.particle.Particleor- sympy.physics.mechanics.rigidbody.RigidBodyor- str) – SymPy object to show or hide.
- is_visible ( - bool) – If True show- plot_object, otherwise hide plot_object.
- raise_error ( - bool, optional) – If plot_object not found raise an error. Default is True.
 
 
 - update() None¶
- Update the objects on the scene, based on the current values. 
 - property values: tuple¶
- List of evaluated values for the object’s variables. 
 - property view: GLViewWidget¶
- The view in which the scene is plotted. 
 - property zero_point: sympy.physics.vector.point.Point¶
- The absolute origin with respect to which all objects will be positioned.