Слияние кода завершено, страница обновится автоматически
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 )