Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

Name:- Tushar Pillai

Roll no:- SF04

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

Q1.Determine whether the


following points are collinear:

i. (−1, 2), (1, 1), (2, 3), (5, 5)


In [16]:
A1=(-1,2)
A2=(1,1)
A3=(2,3)
A4=(5,5)

In [17]:
Point.is_collinear(A1,A2,A4)

Out[17]:
False

ii. (−2, 1), (3, 2), (2, −3), (−5, 4)


In [18]:
B1=(-2,1)
B2=(3,2)
B3=(2,-3)
B4=(-5,4)

In [19]:
Point.is_collinear(B2,B3,B1)

Out[19]:
False

Q2. Find the distance between


the points x, y ; y, w and x, z if x
= [1, 3], y = [−5, 5], z = [4, −3]
and w = [−2, −6]
In [21]:
x=Point(1,3)
y=Point(-5,5)
z=Point(4,-3)
w=Point(-2,-6)

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

Q3. Reflect the given points


through the respective lines.

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

i. (1, 2), −2x + y = 1


In [66]:
x,y=symbols('x,y')
y=Line(-2*x+y-1)
P=Point(1,2)
P.reflect(Line(y))

Out[66]:
1 12
Point2D( , )
5 5

ii. (3, −2), x − y = 3


In [7]:
x,y=symbols('x,y')
y=Line(x-y)
P=Point(3,-2)
P.reflect(Line(y))

Out[7]:
Point2D(−2, 3)

iii. (2, −4), 4x − 3y = 10


In [8]:
x,y=symbols('x,y')
y=Line(4*x-3*y-10)
P=Point(2,-4)
P.reflect(Line(y))

Out[8]:
6 8
Point2D(− ,− )
5 5

Q4. Write a python program to


apply the following
transformations on the point [−2
, 4] :

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)

ii. Shearing in x – direction by -2


units
In [69]:
M=Matrix([[1,0,0],[-2,1,0],[0,0,1]])
P=Point(-2,4)
P.transform(M)

Out[69]:
Point2D(−10, 4)

iii. Scaling in x – direction by 5


units.
In [70]:
P=Point(-2,4)
P.scale(5,0)

Out[70]:
Point2D(−10, 0)

iv. Scaling in y – direction by -3


units.
In [71]:
P=Point(-2,4)
P.scale(0,-3)

Out[71]:
Point2D(0, −12)

v. Scaling in X and Y direction


by 2 and 7 units respectively.
In [72]:
P=Point(-2,4)
P.scale(2,7)

Out[72]:
Point2D(−4, 28)

vi. Shearing in X and Y direction


by 4 and 7 units respectively.
In [73]:
T=Matrix([[1,7,0],[4,1,0],[0,0,1]])
P.transform(T)

Out[73]:
Point2D(14, −10)

In [74]:
T

Out[74]:
1 7 0
⎡ ⎤
⎢4 1 0⎥
⎣ ⎦
0 0 1

vii. Reflection through x – axis.


In [75]:
x,y=symbols('x,y')
P.reflect(Line(x))

Out[75]:
Point2D(2, 4)

viii. Refection through y – axis.


In [76]:
x,y=symbols('x,y')
P.reflect(Line(y))

Out[76]:
Point2D(−2, −4)

ix. Reflection through origin.


In [79]:
P=Point(-2,4)
M=Matrix([[-1,0,0],[0,-1,0],[0,0,1]])
P.transform(M)

Out[79]:
Point2D(2, −4)

x. Reflection through the line 𝑦 =


𝑥
In [81]:
M=Point(-2,4)
x,y=symbols('x,y')
L=Line(x-y)
M.reflect(Line(L))

Out[81]:
Point2D(4, −2)

xi. Reflection through the line 𝑦


= −𝑥
In [82]:
M=Point(-2,4)
x,y=symbols('x,y')
L=Line(x+y)
M.reflect(Line(L))

Out[82]:
Point2D(−4, 2)

Q5. Apply each of the following


transformations on the point 𝑃
[3, −1].

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)

ii. Scaling in x and y - direction


by 1/2 and 3 units respectively.
In [84]:
P=Point(3,-1)
P.scale(1/2,3)

Out[84]:
3
Point2D( , −3)
2

iii. Shearing in both x and y -


direction by -2 and 4 units
respectively.
In [86]:
M=Matrix([[1,4,0],[-2,1,0],[0,0,1]])
P=Point(3,-1)
P.transform(M)

Out[86]:
Point2D(5, 11)

iv. Reflection through x-axis.


In [88]:
x,y=symbols('x,y')
y=Line(y)
a=Point(3,-1)
a.reflect(Line(y))

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)

vi. Scaling in Y-coordinate by


factor 1.5.
In [90]:
P=Point(3,-1)
P.scale(1,1.5)

Out[90]:
3
Point2D(3, − )
2

vii. Reflection through the line y


= x.
In [91]:
M=Point(3,-1)
x,y=symbols('x,y')
L=Line(x-y)
M.reflect(Line(L))

Out[91]:
Point2D(−1, 3)

viii. Reflection through y – axis


In [92]:
x,y=symbols('x,y')
L=Line(x)
a=Point(3,-1)
a.reflect(Line(L))

Out[92]:
Point2D(−3, −1)

ix. Uniform scaling by 2 units.


In [93]:
P=Point(3,-1)
P.scale(2,2)

Out[93]:
Point2D(6, −2)

x. Reflection through the origin.


In [94]:
M=Matrix([[-1,0,0],[0,-1,0],[0,0,1]])
P=Point(3,-1)
P.transform(M)

Out[94]:
Point2D(−3, 1)

You might also like