1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/icvrc2021-neu-civcautonomous-driving

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
isInTriangle.py 1.1 КБ
Копировать Редактировать Исходные данные Просмотреть построчно История
huang_xinghui Отправлено 3 лет назад b1b75a4
class Vector2d(object):
def __init__(self):
self.x_ = 0
self.y_ = 0
def CrossProduct(self, vector):
return self.x_ * vector.y_ - self.y_ * vector.x_
def Minus(self, vector):
ans = Vector2d()
ans.x_ = self.x_ - vector.x_
ans.y_ = self.y_ - vector.y_
return ans
class Triangle(object):
def __init__(self):
self.pointA_ = Vector2d()
self.pointB_ = Vector2d()
self.pointC_ = Vector2d()
def isInTriangle(self, target):
PA = self.pointA_.Minus(target)
PB = self.pointB_.Minus(target)
PC = self.pointC_.Minus(target)
t1 = PA.CrossProduct(PB)
t2 = PB.CrossProduct(PC)
t3 = PC.CrossProduct(PA)
return t1 * t2 >= 0 and t1 * t3 >= 0
def test():
triangle = Triangle()
triangle.pointA_.x_ = 240
triangle.pointA_.y_ = 175
triangle.pointB_.x_ = 160
triangle.pointB_.y_ = 250
triangle.pointC_.x_ = 320
triangle.pointC_.y_ = 250
point = Vector2d()
point.x_ = 290
point.y_ = 300
print(triangle.isInTrangle(point))

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/icvrc2021-neu-civcautonomous-driving.git
git@gitlife.ru:oschina-mirror/icvrc2021-neu-civcautonomous-driving.git
oschina-mirror
icvrc2021-neu-civcautonomous-driving
icvrc2021-neu-civcautonomous-driving
V预赛