Professional Documents
Culture Documents
Prac 4)
Prac 4)
Date:- 24/1/2024
Pratical 4:-Application to
computational geometry
In [13]:
from sympy import *
In [14]:
from numpy import *
In [15]:
P=Point(2,3)
P1=(2,3)
In [7]:
p
Out[7]:
Point2D(2, 3)
In [8]:
P1
Out[8]:
(2, 3)
In [9]:
type(P1)
Out[9]:
tuple
In [10]:
type(P)
Out[10]:
sympy.geometry.point.Point2D
In [11]:
P=(2,3)
Q=(2,2)
R=(4,4)
S=(10,10)
In [12]:
P
Out[12]:
(2, 3)
In [13]:
R
Out[13]:
(4, 4)
In [15]:
Point.is_collinear(P,Q,R,S)
Out[15]:
False
In [17]:
Point.is_collinear(A1,A2,A4)
Out[17]:
False
In [19]:
Point.is_collinear(B2,B3,B1)
Out[19]:
False
In [24]:
Point.distance(x,y)
Out[24]:
2√10
In [25]:
Point.distance(x,z)
Out[25]:
3√5
In [26]:
Point.distance(y,w)
Out[26]:
√130
EX]
In [40]:
A=Point(1,2)
In [41]:
A.scale(2,4)
Out[41]:
Point2D(2, 8)
In [42]:
T=Matrix(([2,0,0],[0,4,0],[0,0,1]))
In [43]:
T
Out[43]:
2 0 0
⎡ ⎤
⎢0 4 0⎥
⎣ ⎦
0 0 1
In [44]:
A.transform(T)
Out[44]:
Point2D(2, 8)
In [45]:
A.rotate(pi/2)
Out[45]:
Point2D(−2, 1)
In [68]:
x,y=symbols('x,y')
L=Line(x-y)
L.equation()
Out[68]:
−x + y
In [69]:
L
Out[69]:
In [70]:
type(L)
Out[70]:
sympy.geometry.line.Line2D
In [87]:
L1=Line(Point(-2,1),Point(1,2))
In [88]:
L1
Out[88]:
In [89]:
type(L1)
Out[89]:
sympy.geometry.line.Line2D
In [90]:
L2=Ray(Point(-2,1),Point(1,2))
In [91]:
L2
Out[91]:
In [92]:
type(L2)
Out[92]:
sympy.geometry.line.Ray2D
In [93]:
LL=L.scale(2,4)
In [94]:
LL
Out[94]:
In [95]:
type(LL)
Out[95]:
sympy.geometry.line.Line2D
In [96]:
LL.equation()
Out[96]:
−4x + 2y
In [97]:
LL.rotate(pi)
Out[97]:
In [100]:
Q=L1.reflect(Line(y))
In [101]:
Q
.equation()
Out[101]:
x + 3y + 5
ex.
In [6]:
x,y=symbols('x,y')
y=Line(-2*x+y)
P=Point(-2,-2)
P.reflect(Line(y))
Out[6]:
2 14
Point2D(− ,− )
5 5
In [44]:
L1=Segment(Point(-2,1),Point(1,2))
L2=Ray(Point(-2,1),Point(1,2))
L=Line(Point(-2,1),Point(1,2))
X=Line(y)
Y=Line(x)
In [45]:
L.length
Out[45]:
∞
In [46]:
L1.length
Out[46]:
√10
In [47]:
L2.length
Out[47]:
∞
In [48]:
L.angle_between(L1)
Out[48]:
0
In [49]:
L.intersection(L2)
Out[49]:
[Ray2D(Point2D(-2, 1), Point2D(1, 2))]
In [50]:
L1.midpoint
Out[50]:
1 3
Point2D(− , )
2 2
In [51]:
L1.slope
Out[51]:
1
In [63]:
x,y=symbols('x,y')
X1=Line(y)
Y1=Line(x-y)
In [64]:
X1.slope
Out[64]:
0
In [65]:
Y1.slope
Out[65]:
1
Out[66]:
1 12
Point2D( , )
5 5
Out[7]:
Point2D(−2, 3)
Out[8]:
6 8
Point2D(− ,− )
5 5
i. Shearing in y - direction by 7
units.
In [68]:
M=Matrix([[1,7,0],[0,1,0],[0,0,1]])
P=Point(-2,4)
P.transform(M)
Out[68]:
Point2D(−2, −10)
Out[69]:
Point2D(−10, 4)
Out[70]:
Point2D(−10, 0)
Out[71]:
Point2D(0, −12)
Out[72]:
Point2D(−4, 28)
Out[73]:
Point2D(14, −10)
In [74]:
T
Out[74]:
1 7 0
⎡ ⎤
⎢4 1 0⎥
⎣ ⎦
0 0 1
Out[75]:
Point2D(2, 4)
Out[76]:
Point2D(−2, −4)
Out[79]:
Point2D(2, −4)
Out[81]:
Point2D(4, −2)
Out[82]:
Point2D(−4, 2)
i. Shearing in y - direction by 2
units.
In [83]:
M=Matrix([[1,2,0],[0,1,0],[0,0,1]])
P=Point(3,-1)
P.transform(M)
Out[83]:
Point2D(3, 5)
Out[84]:
3
Point2D( , −3)
2
Out[86]:
Point2D(5, 11)
Out[88]:
Point2D(3, 1)
v. Scaling in X-coordinate by
factor 2.
In [95]:
P=Point(3,-1)
P.scale(2,0)
Out[95]:
Point2D(6, 0)
Out[90]:
3
Point2D(3, − )
2
Out[91]:
Point2D(−1, 3)
Out[92]:
Point2D(−3, −1)
Out[93]:
Point2D(6, −2)
Out[94]:
Point2D(−3, 1)