Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from math import sqrt
- class Point:
- def __init__(self, x, y):
- self.x = x
- self.y = y
- def dist(self, other):
- return sqrt((self.x - other.x) ** 2 + (self.y - other.y) ** 2)
- def getX(self):
- return self.x
- def getY(self):
- return self.y
- def __str__(self):
- return f'{self.x}, {self.y}'
- v, v1 = Point(1, 1), Point(3, 3)
- print(v, v1, v.dist(v1), sep='\n')
- class Triangle:
- def __init__(self, x1, y1):
- self.a = Point(0, 0)
- self.b = Point(0, 5)
- self.c = Point(5, 0)
- self.x1, self.y1 = x1, y1
- def per(self):
- return self.a.dist(self.b) + self.b.dist(self.c) + self.c.dist(self.a)
- def sqr(self):
- return sqrt((self.per() / 2 - self.a.dist(self.b)) \
- + (self.per() / 2 - self.b.dist(self.c)) + \
- (self.per() / 2 - self.c.dist(self.a)))
- def acc(self):
- if ((self.a.getX() - self.x1) * (self.b.getY() - self.a.getY()) - (self.b.getX() - self.a.getX()) * (self.a.getY() - self.y1)) > 0 and \
- ((self.b.getX() - self.x1) * (self.c.getY() - self.b.getY()) - (self.c.getX() - self.b.getX()) * (self.b.getY() - self.y1)) > 0 and \
- ((self.c.getX() - self.x1) * (self.a.getY() - self.c.getY()) - (self.a.getX() - self.c.getX()) * (self.c.getY() - self.y1)) > 0:
- return 'Inside'
- elif ((self.a.getX() - self.x1) * (self.b.getY() - self.a.getY()) - (self.b.getX() - self.a.getX()) * (self.a.getY() - self.y1)) < 0 and \
- ((self.b.getX() - self.x1) * (self.c.getY() - self.b.getY()) - (self.c.getX() - self.b.getX()) * (self.b.getY() - self.y1)) < 0 and \
- ((self.c.getX() - self.x1) * (self.a.getY() - self.c.getY()) - (self.a.getX() - self.c.getX()) * (self.c.getY() - self.y1)) < 0:
- return 'Inside'
- elif ((self.a.getX() - self.x1) * (self.b.getY() - self.a.getY()) - (self.b.getX() - self.a.getX()) * (self.a.getY() - self.y1)) == 0 or \
- ((self.b.getX() - self.x1) * (self.c.getY() - self.b.getY()) - (self.c.getX() - self.b.getX()) * (self.b.getY() - self.y1)) == 0 or \
- ((self.c.getX() - self.x1) * (self.a.getY() - self.c.getY()) - (self.a.getX() - self.c.getX()) * (self.c.getY() - self.y1)) == 0:
- return 'On edge'
- else:
- return 'Outside'
- def __str__(self):
- return f'({self.a}); ({self.b}); ({self.c})'
- x = Triangle(0, 0)
- print(x, x.per(), x.sqr(), x.acc(), sep='\n')
Add Comment
Please, Sign In to add comment