Metadata-Version: 2.1
Name: graphics_planes
Version: 1.0.1
Summary: Esta es una libreria para generar graficos en 2D, añadiendo herramientas y utilidades extras para mejorar la generacion de graficos.
Home-page: https://github.com/CCFTS/graphics-plane
Author: Damian Zsiros, Alejandro Beltran, Alejandro de La Esprella, Cristian Cuadrado
Author-email: damjeronzalez23@gmail.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.6
Description-Content-Type: text/markdown


# graphics-plane

`graphics-plane` es una librerÃ­a de Python para crear grÃ¡ficos en 2D y exportarlos a formato SVG. Permite generar y manipular figuras geomÃ©tricas como rectÃ¡ngulos y triÃ¡ngulos, y combinarlas en un Ãºnico dibujo dentro de un plano definido.

## InstalaciÃ³n

Puedes instalar `graphics-plane` desde PyPI usando pip. Ejecuta el siguiente comando en tu terminal:

```bash
pip install graphics-plane
```

## Uso BÃ¡sico

### Importar la LibrerÃ­a

Primero, importa las clases necesarias en tu script:

```python
from graphics_plane import Plane, Rectangle, Triangle
```

### Crear Figuras y Dibujo

1. **Crear un objeto `Plane`** especificando el ancho y alto del Ã¡rea de trabajo:

   ```python
   plane = Plane(name="Sample Plane", width=200, height=200)
   ```

2. **Crear instancias de las figuras**:

   ```python
   # Crear un rectÃ¡ngulo y un triÃ¡ngulo con posiciones especÃ­ficas
   rectangle = Rectangle(width=100, height=50, label="My Rectangle", x=50, y=50)
   triangle = Triangle(width=100, height=80, label="My Triangle", x=100, y=100)
   ```

3. **AÃ±adir las figuras al plano**:

   ```python
   # AÃ±adir las figuras al plano
   plane.add_shape(rectangle)
   plane.add_shape(triangle)
   ```

4. **Mostrar y exportar el plano**:

   ```python
   # Mostrar las figuras en el plano (para depuraciÃ³n)
   plane.show_shapes()

   # Exportar el plano completo a SVG
   plane.export_to_svg("sample_plane.svg")
   ```

## Clases y MÃ©todos

### `Shape`

Representa una forma geomÃ©trica. Puedes definir la posiciÃ³n y exportar la figura a SVG.

- **Atributos**:
  - `width`: Ancho de la figura.
  - `height`: Alto de la figura.
  - `label`: Etiqueta de la figura.
  - `x`: PosiciÃ³n horizontal en el plano.
  - `y`: PosiciÃ³n vertical en el plano.

- **MÃ©todos**:
  - `draw(drawer)`: Dibuja la figura usando un objeto `drawer` (para exportaciÃ³n a SVG o para depuraciÃ³n con `turtle`).
  - `export_to_svg(drawer, file_name)`: Exporta la figura a un archivo SVG.
  - `_draw_to_svg(shape_group, drawer)`: MÃ©todo interno para aÃ±adir la figura al SVG.

### `Rectangle`

Representa un rectÃ¡ngulo y hereda de `Shape`.

- **MÃ©todos**:
  - `draw(drawer)`: Dibuja el rectÃ¡ngulo utilizando `turtle`, centrado en la posiciÃ³n (`x`, `y`).
  - `_draw_to_svg(shape_group, drawer)`: AÃ±ade el rectÃ¡ngulo al SVG con la posiciÃ³n ajustada.

### `Triangle`

Representa un triÃ¡ngulo y hereda de `Shape`.

- **MÃ©todos**:
  - `draw(drawer)`: Dibuja el triÃ¡ngulo utilizando `turtle`, centrado en la posiciÃ³n (`x`, `y`).
  - `_draw_to_svg(shape_group, drawer)`: AÃ±ade el triÃ¡ngulo al SVG con la posiciÃ³n ajustada.

### `Plane`

Maneja un conjunto de formas y permite exportar el dibujo completo a SVG.

- **Atributos**:
  - `width`: Ancho del plano.
  - `height`: Alto del plano.
  - `shapes`: Lista de figuras en el plano.

- **MÃ©todos**:
  - `add_shape(shape)`: AÃ±ade una forma al plano.
  - `export_to_svg(filename)`: Exporta el plano completo a un archivo SVG.
  - `show_shapes()`: Muestra todas las formas y sus posiciones utilizando `turtle` (para depuraciÃ³n).
  - `show_with_turtle()`: Utiliza `turtle` para dibujar todas las figuras en el plano, brindando una representaciÃ³n visual interactiva.

## Ejemplos

AquÃ­ tienes un ejemplo completo de cÃ³mo usar la librerÃ­a para crear y exportar un dibujo:

```python
from graphics_plane import Plane, Rectangle, Triangle

# Crear una instancia de Plane
plane = Plane(name="Sample Plane", width=200, height=200)

# Crear un rectÃ¡ngulo y un triÃ¡ngulo
rectangle = Rectangle(width=100, height=50, label="My Rectangle", x=50, y=50)
triangle = Triangle(width=100, height=80, label="My Triangle", x=100, y=100)

# AÃ±adir las figuras al plano
plane.add_shape(rectangle)
plane.add_shape(triangle)

# Mostrar las figuras en el plano
plane.show_shapes()

# Exportar el plano completo a SVG
plane.export_to_svg("sample_plane.svg")
```

## Mantenedores

Este proyecto es mantenido por:

- **DamiÃ¡n Zsiros**  
  [GitHub](https://github.com/Damian-Zsiros-Prog)  
  ![GitHub](https://img.shields.io/badge/GitHub-Damian--Zsiros--Prog-lightgrey?logo=github&logoColor=white)

- **Alejandro BeltrÃ¡n**  
  [GitHub](https://github.com/Beltranposso)  
  ![GitHub](https://img.shields.io/badge/GitHub-Beltranposso-lightgrey?logo=github&logoColor=white)

## Contribuciones

Las contribuciones son bienvenidas. Si encuentras algÃºn problema o deseas mejorar la librerÃ­a, abre un [issue](https://github.com/tu_usuario/graphics-plane/issues) o envÃ­a un pull request en el [repositorio](https://github.com/tu_usuario/graphics-plane).

## Licencia

Este proyecto estÃ¡ licenciado bajo la [Licencia MIT](LICENSE).
