Skip to main content

Библиотека для создания и отображения 3D объектов с помощью Tkinter

Project description

Py3DGraphics

Библиотека для создания и отображения 3D объектов с помощью Tkinter.

Установка

pip install py3dgraphics

Быстрый старт

Создайте вращающийся куб в пару строк:

from py3dgraphics import create_cube, quick_scene

cube = create_cube()  # Куб по умолчанию
quick_scene(cube)     # Запуск сцены

Пример использования

from py3dgraphics import create_cube, quick_scene

# Создание кубов с разными размерами и скоростями
cube1 = create_cube(size=150, speed=0.02)  # Большой, быстрый
cube2 = create_cube(size=75, speed=0.005)  # Маленький, медленный

# Запуск сцены
quick_scene(cube1, cube2)

Расширенное использование

from py3dgraphics import create_cube, Scene3D
import time

# Создание кубов
cube = create_cube(size=150, speed=0.009, position=(300, 0, 0))
cube1 = create_cube(size=120, speed=0.007)

# Создание сцены
scene = Scene3D()
scene.add_object(cube)
scene.add_object(cube1)

# Анимация движения
xp = 300
while True:
    xp += 1
    cube.set_position(xp, 0, 0)  # Изменение позиции
    scene.update_scene()  # Обновление сцены
    time.sleep(0.05)

Управление анимацией

Объекты вращаются только если их speed > 0. Для статичных объектов установите speed=0.

from py3dgraphics import create_cube, quick_scene

# Создание кубов с разными скоростями
cube1 = create_cube(size=150, speed=0.02)  # Вращается
cube2 = create_cube(size=75, speed=0)     # Не вращается

# Запуск сцены
quick_scene(cube1, cube2)

Или ручное управление:

from py3dgraphics import create_cube, Scene3D

scene = Scene3D()
scene.add_object(create_cube())
scene.add_object(create_cube(size=100, position=(200, 0, 0), speed=0))  # Статичный

scene.run()

Ручное создание объектов

from py3dgraphics import Point3D, Object3D, Scene3D

# Создание куба вручную
CUBE_SIZE = 150
points = [
    [-CUBE_SIZE, -CUBE_SIZE, -CUBE_SIZE],
    [ CUBE_SIZE, -CUBE_SIZE, -CUBE_SIZE],
    [ CUBE_SIZE,  CUBE_SIZE, -CUBE_SIZE],
    [-CUBE_SIZE,  CUBE_SIZE, -CUBE_SIZE],
    [-CUBE_SIZE, -CUBE_SIZE,  CUBE_SIZE],
    [ CUBE_SIZE, -CUBE_SIZE,  CUBE_SIZE],
    [ CUBE_SIZE,  CUBE_SIZE,  CUBE_SIZE],
    [-CUBE_SIZE,  CUBE_SIZE,  CUBE_SIZE]
]
edges = [
    (0, 1), (1, 2), (2, 3), (3, 0),
    (4, 5), (5, 6), (6, 7), (7, 4),
    (0, 4), (1, 5), (2, 6), (3, 7)
]

cube = Object3D(points, edges, speed=0.02)
scene = Scene3D()
scene.add_object(cube)
scene.run()

Классы и функции

  • Point3D: Представляет 3D точку.
  • Object3D: Представляет 3D объект с точками и рёбрами.
  • Scene3D: Управляет сценой и отображением объектов.
  • create_cube(size=150, speed=0.01): Создаёт куб с заданными параметрами.
  • quick_scene(*objects, width=600, height=600, title="3D Сцена", bg="black"): Быстро создаёт и запускает сцену с объектами.

Лицензия

MIT

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

treeed-0.1.7.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

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

treeed-0.1.7-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file treeed-0.1.7.tar.gz.

File metadata

  • Download URL: treeed-0.1.7.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for treeed-0.1.7.tar.gz
Algorithm Hash digest
SHA256 b2d3ef3ba3827973e6416cb4f40ea1e3424ef736a049e93c8cfb844782843efd
MD5 c35bf0e76675ea878811512c6d654003
BLAKE2b-256 4feb718c69a746295a60bf8283fd067178310198bffb208d7c5d87c6efda9f8f

See more details on using hashes here.

File details

Details for the file treeed-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: treeed-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for treeed-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 8f4951656728dd7eb93cbca1e95a3766a45ab3f895a1c542ca2cdfa7f3a5757c
MD5 39fc14fb986a2f06d9b564d440ccdf75
BLAKE2b-256 c387dc32ef9011bde2a92bc885734399da26ea3a2cf75c028d77f7c333c45948

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