SymPy - Entidades

El módulo de geometría en SymPy permite la creación de entidades bidimensionales como línea, círculo, etc. Luego podemos obtener información sobre ellas, como comprobar la colinealidad o encontrar una intersección.

Punto

La clase de puntos representa un punto en el espacio euclidiano. El siguiente ejemplo comprueba la colinealidad de los puntos:

>>> from sympy.geometry import Point 
>>> from sympy import * 
>>> x=Point(0,0) 
>>> y=Point(2,2) 
>>> z=Point(4,4) 
>>> Point.is_collinear(x,y,z)

Output

True

>>> a=Point(2,3) 
>>> Point.is_collinear(x,y,a)

Output

False

El método de distancia () de la clase Punto calcula la distancia entre dos puntos

>>> x.distance(y)

Output

$2\sqrt2$

La distancia también se puede representar en términos de símbolos.

Línea

La entidad de línea se obtiene de dos objetos Point. El método intersection () devuelve el punto de intersección si dos líneas se cruzan.

>>> from sympy.geometry import Point, Line 
>>> p1, p2=Point(0,5), Point(5,0) 
>>> l1=Line(p1,p2)
>>> l2=Line(Point(0,0), Point(5,5)) 
>>> l1.intersection(l2)

Output

[Point2D(5/2, 5/2)]

>>> l1.intersection(Line(Point(0,0), Point(2,2)))

Output

[Point2D(5/2, 5/2)]

>>> x,y=symbols('x y') 
>>> p=Point(x,y) 
>>> p.distance(Point(0,0))

Output

$\sqrt{x^2 + y^2}$

Triángulo

Esta función construye una entidad triangular a partir de tres objetos puntuales.

Triangle(a,b,c)

>>> t=Triangle(Point(0,0),Point(0,5), Point(5,0)) 
>>> t.area

Output

$-\frac{25}{2}$

Elipse

Una entidad de geometría elíptica se construye pasando un objeto Point correspondiente al centro y dos números cada uno para el radio horizontal y vertical.

ellipse(center, hradius, vradius)

>>> from sympy.geometry import Ellipse, Line 
>>> e=Ellipse(Point(0,0),8,3) 
>>> e.area

Output

$24\pi$

El vradius se puede proporcionar indirectamente mediante el uso del parámetro de excentricidad.

>>> e1=Ellipse(Point(2,2), hradius=5, eccentricity=Rational(3,4)) 
>>> e1.vradius

Output

$\frac{5\sqrt7}{4}$

los apoapsis de la elipse es la mayor distancia entre el foco y el contorno.

>>> e1.apoapsis

Output

$\frac{35}{4}$

La siguiente declaración calcula la circunferencia de la elipse:

>>> e1.circumference

Output

$20E(\frac{9}{16})$

los equation método de elipse devuelve la ecuación de la elipse.

>>> e1.equation(x,y)

Output

$(\frac{x}{5}-\frac{2}{5})^2 + \frac{16(y-2)2}{175} - 1$