什么是SymPy中的实体?
SymPy中的几何模块是所有几何实体Python的基础类,允许你创建二维对象,如线和圆,多边形等。然后,我们可以通过寻找碰撞性或检测交叉点来了解它。任何具有特殊几何品质的对象都被称为GeometryEntity。
class sympy.geometry.entity.GeometryEntity(*args, kwargs)
所有的几何实体都继承自这个基本类。这个类并不代表任何特定的几何实体;相反,它实现了所有子类所共享的几个方法。
Points
一个位置是几何学中的一个点。它没有尺寸,即没有宽度、长度或深度。一个点代表一个点。勾连性是几何学中一组点位于一条线上的属性。Collinearity指的是具有这种属性的一组点。Point()函数被用来在空间中创建一个点。点类包含了distance()方法,用于查找两点之间的距离。
# import packages
from sympy.geometry import Point
# create points
x = Point(1, 1)
y = Point(2, 2)
z = Point(3, 3)
w = Point(5, 2)
# checking if points are collinear.
print(Point.is_collinear(x, y, z))
print(Point.is_collinear(y, z, w))
# calculating distance between two points
print('Distance between x and y points is ' + str(x.distance(y)))
输出:
True
False
Distance between x and y points is sqrt(2)
一个点离原点的距离公式。
# importing packages
from sympy.geometry import Point
from sympy.abc import a, b
# defining a point
p = Point(a, b)
# distance of the point from the origin
print(p.distance(Point(0, 0)))
输出:
sqrt(a**2 + b**2)
Line
线被定义为一组在两个方向上无限延伸的点。它只有一个维度,那就是长度。线条()是在两个点的帮助下创建的。intersection()方法用于查找两条线的交点。angle_between()函数用于查找两条线的角度。
# importing packages
from sympy.geometry import Point, Line
# creating two points
p1, p2 = Point(1, 2), Point(2, 0)
line1 = Line(p1, p2)
print(line1)
# creating two points
line2 = Line(Point(2, 4), Point(6, 2))
print(line2)
# intersection point of two lines
print(line1.intersection(line2))
# Angle between the two lines
print('Angle between two lines is : \
' + str(line1.angle_between(line2)))
输出:
Line2D(Point2D(1, 2), Point2D(2, 0))
Line2D(Point2D(2, 4), Point2D(6, 2))
[Point2D(-2/3, 16/3)]
Angle between two lines is : acos(4/5)
Triangle
三角形是一个有三个顶点和三条边的三边形。它是最基本的几何形式之一。三角形是在三个点或顶点的帮助下形成的。.面积属性用于寻找三角形的面积。
Triangle(vertex1,vertex2,vertex3)
# importing packages
from sympy.geometry import Point, Triangle
# constructing a triangle with three points
triangle = Triangle(Point(0, 0), Point(3, 0), Point(3, 3))
# area of the triangle
print('area of the triangle is : '+str(triangle.area))
输出:
area of the triangle is : 9/2
Polygon
geometry类中的RegularPolygon()方法是用来构造一个RegularPolygon。它需要以下的参数。
class sympy.geometry.polygon.RegularPolygon()
# importing packages
from sympy import RegularPolygon, Point
fig = RegularPolygon(Point(0, 0), 1, 3)
# area of the regular polygon
print(fig.area)
输出:
3*sqrt(3)/4
Circle
圆是由一个在平面内移动的点勾勒出的曲线,使其与给定点的距离保持不变;或者说,它是由平面内与给定点(中心)保持一定距离的所有点形成的形状。
class sympy.geometry.ellipse.Circle(*args, **kwargs)
Circle()方法以一个点为中心,其他参数如半径,构建一个圆。面积属性被用来计算圆的面积。
# importing packages
from sympy import Circle, Point
fig = Circle(Point(0, 0), 3)
# area of the regular polygon
print(fig.area)
输出:
9*pi
Ellipse
椭圆是一条封闭的曲线,它是由两个固定的点(焦点)的距离加起来都是相同的数字组成的。中心是两个焦点在中间相遇的位置。椭圆的特性是,从一个焦点反射到其边界的线会通过另一个焦点。
class sympy.geometry.ellipse.Ellipse(center=None, hradius=None, vradius=None, eccentricity=None, **kwargs)
椭圆的方程可以用equation()方法来构造,它以符号作为输入。.面积属性用于显示圆的面积,.周长属性用于查找圆的周长。
# importing packages
from sympy.geometry import Ellipse, Point
from sympy.abc import x, y
# ellipse
ellipse = Ellipse(Point(0, 0), 5, 8)
# area of ellipse
print('area of the ellipse is : '+str(ellipse.area))
# equation of ellipse
print('equation of the ellipse is : ')
print(ellipse.equation(x, y))
# circumference of ellipse
print('circumference of the ellipse is : \
'+str(ellipse.circumference))
输出:
area of the ellipse is : 40*pi
equation of the ellipse is :
x**2/25 + y**2/64 - 1
circumference of the ellipse is : 32*elliptic_e(39/64)