Metadata-Version: 2.4
Name: analytische_geometrie
Version: 1.0.3
Summary: 3D analytical geometry library for points, lines, planes and polygonal surfaces.
Author-email: VacationAir <vacationair.va@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/VacationAir/analytische-geometrie
Project-URL: Documentation, https://github.com/VacationAir/analytische-geometrie#readme
Project-URL: Repository, https://github.com/VacationAir/analytische-geometrie
Project-URL: Issues, https://github.com/VacationAir/analytische-geometrie/issues
Keywords: geometry,analytical geometry,3d,mathematics,numpy,line,plane,point,vector
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Education
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.21
Dynamic: license-file

# Analytische Geometrie

**Analytische Geometrie** ist eine Python-Bibliothek für Berechnungen der analytischen Geometrie im dreidimensionalen Raum. Sie bietet eine einfache und konsistente API für Punkte, Geraden, Ebenen und ebene Vierecke (*Fassaden*) sowie umfangreiche Funktionen zur Bestimmung von Abständen, Schnittpunkten und Lagebeziehungen.

Die Bibliothek basiert auf **NumPy** und verwendet numerische Toleranzen, um stabile Ergebnisse bei Gleitkommaoperationen zu gewährleisten.

## Funktionen

### Punkte (`Punkt`)

* Erstellung von Punkten im ℝ³
* Abstand zwischen Punkten
* Richtungsvektor zwischen zwei Punkten

### Geraden (`Gerade`)

* Erstellung aus

  * zwei Punkten
  * Stütz- und Richtungsvektor
* Berechnung beliebiger Punkte auf der Geraden
* Lotfußpunkt eines Punktes auf der Geraden
* Abstände zu

  * Punkten
  * Geraden
* Schnittpunkt mit Geraden
* Lagebeziehungen

  * identisch
  * parallel
  * schneidend
  * windschief

### Ebenen (`Ebene`)

* Erstellung aus

  * Punkt und Normalenvektor
  * Punkt und zwei Spannvektoren
* Schnittgerade zweier Ebenen
* Schnittpunkt mit Geraden
* Abstände zu

  * Punkten
  * Geraden
  * Ebenen
* Schnittwinkel
* Lagebeziehungen

  * identisch
  * parallel
  * schneidend

### Fassaden (`Fassade`)

Darstellung begrenzter ebener Vierecke.

Unterstützt unter anderem:

* Mittelpunkt
* Flächeninhalt
* Normalenvektor
* Punkt-in-Fassade-Test
* Lagebeziehungen zwischen Fassaden

  * identisch
  * parallel
  * schneidend
  * außerhalb
  * koplanar schneidend
  * koplanar außerhalb
  * auf Kante
  * berührend
  * kanten schneidend
* Abstand zwischen Fassaden
* Schnittpunkt (falls eindeutig)

## Eigenschaften

* Saubere objektorientierte API
* Numerisch robuste Berechnungen mit `numpy`
* Automatische Behandlung von Rundungsfehlern mittels Toleranzen (`numpy.allclose`)
* Umfangreiche Testabdeckung mit **83 Unit-Tests**
* Für Lehre, Studium und geometrische Anwendungen geeignet

## Installation

```bash
pip install analytische_geometrie
```

## Beispiel

```python
from analytische_geometrie import Punkt, Gerade

A = Punkt([0, 0, 0])
B = Punkt([2, 2, 2])

g = Gerade(A.punkt, B.punkt)

print(A.abstand_punkt(B))
print(g.punkt(0.5))
```

## Abhängigkeiten

* Python ≥ 3.10
* NumPy

## Lizenz

MIT License.
