SymPy - เอนทิตี

โมดูลเรขาคณิตใน SymPy ช่วยให้สามารถสร้างเอนทิตีสองมิติเช่นเส้นวงกลม ฯลฯ จากนั้นเราจะได้รับข้อมูลเกี่ยวกับสิ่งเหล่านี้เช่นการตรวจสอบโคลิเนียริตี้หรือการหาจุดตัด

จุด

พอยต์คลาสแสดงถึงจุดหนึ่งในปริภูมิยุคลิด ตัวอย่างการตรวจสอบความสอดคล้องกันของคะแนน -

>>> 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

เมธอด distance () ของคลาส Point จะคำนวณระยะห่างระหว่างจุดสองจุด

>>> x.distance(y)

Output

$2\sqrt2$

ระยะทางอาจแสดงในรูปของสัญลักษณ์

ไลน์

ไลน์เอนทิตีได้มาจากวัตถุสองจุด วิธีการจุดตัด () จะส่งกลับจุดตัดหากสองเส้นตัดกันซึ่งกันและกัน

>>> 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}$

สามเหลี่ยม

ฟังก์ชันนี้สร้างเอนทิตีสามเหลี่ยมจากวัตถุสามจุด

Triangle(a,b,c)

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

Output

$-\frac{25}{2}$

วงรี

เอนทิตีเรขาคณิตรูปไข่ถูกสร้างขึ้นโดยส่งผ่านวัตถุจุดที่ตรงกับศูนย์กลางและตัวเลขสองตัวสำหรับรัศมีแนวนอนและแนวตั้ง

ellipse(center, hradius, vradius)

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

Output

$24\pi$

vradius สามารถให้ทางอ้อมโดยใช้พารามิเตอร์ความเยื้องศูนย์

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

Output

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

apoapsis ของวงรีคือระยะห่างระหว่างโฟกัสและเส้นโครงร่างมากที่สุด

>>> e1.apoapsis

Output

$\frac{35}{4}$

คำสั่งต่อไปนี้คำนวณเส้นรอบวงของวงรี -

>>> e1.circumference

Output

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

equation วิธีการของวงรีจะคืนค่าสมการของวงรี

>>> e1.equation(x,y)

Output

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