Skip to main content

Interactive canvas for editing 3D geometry, using matplotlib.pyplot

Project description

xyz_canvas

Interactive canvas for editing 3D geometry, using only matplotlib.pyplot

This is a demo of xyz_canvas (pre-release, V0.3.0), a Python library intended to add, edit, and connect 3D wire-frame objects using only Matplotlib.

The idea is that this will be called by code that needs the user to define / edit these objects in 3D space.

Currently, objects consist only of lines, which may be disconnected. An object consists of one or more lines.

Pressing 'save' fires the callback with the set of added lines as an argument.

To add a line, click two points within the axis space. The view may be rotated at any time by clicking and dragging just oustide the axis space.

Known issues

Currently, when you add a line, both ends are pinned to the 'closest' backplane (shaded & gridded areas). You may add a line from one backplane to another.

I'm experimenting with ways to overcome this without making the UI clunky. The current version here achieves this by allowing line ends to be picked up (click on them) and dragged away from their plane. However, once 'dropped', if they are dropped away from all three backplanes, they can't be selected again.

More trivially, I need to add a 'delete most recent' button alongside the 'clear' (all) button.

Installation

Install with pip:

pip install xyz_canvas

Demo Screenshot

Capture

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xyz_canvas-0.3.0.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xyz_canvas-0.3.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file xyz_canvas-0.3.0.tar.gz.

File metadata

  • Download URL: xyz_canvas-0.3.0.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for xyz_canvas-0.3.0.tar.gz
Algorithm Hash digest
SHA256 842490c4409eecfef22e97c18e51e717e0ff772cff0311e27aaac975dbc64d9e
MD5 3aef29e5fafa66fab12a34af8a1a0bb5
BLAKE2b-256 25987e3cb4c3d99811c084963814e159f58fdc6a5691ca7b9526bd04e8360864

See more details on using hashes here.

File details

Details for the file xyz_canvas-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: xyz_canvas-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for xyz_canvas-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d631eeadbd5befb9ebaf5501047484f0275ce8e4a06a0d30d6a4e5359c7fb033
MD5 25392367186c86a958d1106ac11e153d
BLAKE2b-256 8968151e6740707ec126da0680373adcc3170ebf2180a16ffe839618e007fb3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page