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$