당신의 목표는 주어진 2D 점 X가 주어진 꼭짓점 A, B, C를 가진 삼각형의 영역 내에 있는지를 결정하는 것입니다.
테스트 지점 X와 3 개의 삼각형 정점 (총 8 개의 좌표)의 좌표를 취하고 해당 삼각형 안에 점이 있으면 True를, 외부에 있으면 False를 반환하는 함수를 작성하십시오.
에지 케이스에 대해 걱정하지 마십시오. 점이 삼각형의 경계 (가장자리 또는 꼭지점)에 있거나 삼각형이 실제로 선분이면 코드가 충돌을 포함하여 모든 작업을 수행 할 수 있습니다. 또한 수치 안정성 또는 부동 소수점 정밀도에 대해 걱정하지 마십시오.
코드는 명명 된 함수 여야합니다. 코드 스 니펫은 허용되지 않습니다.
가장 적은 캐릭터가 승리합니다.
입력:
좌표를 나타내는 8 개의 실수. 숫자는 범위 안에 있습니다 (-1,1)
.
정확한 입력 형식은 유연합니다. 예를 들어 8 개의 숫자, 8 개의 숫자 목록, 각각 튜플에 의해 주어진 4 개의 점 목록, 2 * 4 행렬, 4 개의 복소수, 2 개의 x 좌표 및 y 좌표 목록, 등등.
입력은 추가 데이터없이 일부 컨테이너의 숫자 일뿐입니다. 사전 처리를 수행하기 위해 입력을 사용할 수 없으며, 점을 오름차순으로 y 좌표로 지정해야하는 등 입력에 대한 제한이 필요하지 않습니다. 입력은 8 개의 좌표를 허용해야합니다 (앞서 언급 한 엣지 케이스에서는 코드가 임의로 작동 할 수 있음).
입력 형식을 명시하십시오.
산출:
해당 부울 True
/ False
, 해당 숫자 1
/ 0
또는 언어의 아날로그 중 하나입니다.
테스트 사례
입력에는 [X,A,B,C]
4 개의 튜플, 테스트 지점이 먼저, 3 개의 삼각형 정점 이 나열 됩니다. 나는 출력이 있어야 True
하고 출력되어야하는 그룹으로 그룹화했습니다 False
.
True
인스턴스 :
[(-0.31961, -0.12646), (0.38478, 0.37419), (-0.30613, -0.59754), (-0.85548, 0.6633)]
[(-0.87427, -0.00831), (0.78829, 0.60409), (-0.90904, -0.13856), (-0.80685, 0.48468)]
[(0.28997, -0.03668), (-0.28362, 0.42831), (0.39332, -0.07474), (-0.48694, -0.10497)]
[(-0.07783, 0.04415), (-0.34355, -0.07161), (0.59105, -0.93145), (0.29402, 0.90334)]
[(0.36107, 0.05389), (0.27103, 0.47754), (-0.00341, -0.79472), (0.82549, -0.29028)]
[(-0.01655, -0.20437), (-0.36194, -0.90281), (-0.26515, -0.4172), (0.36181, 0.51683)]
[(-0.12198, -0.45897), (-0.35128, -0.85405), (0.84566, 0.99364), (0.13767, 0.78618)]
[(-0.03847, -0.81531), (-0.18704, -0.33282), (-0.95717, -0.6337), (0.10976, -0.88374)]
[(0.07904, -0.06245), (0.95181, -0.84223), (-0.75583, -0.34406), (0.16785, 0.87519)]
[(-0.33485, 0.53875), (-0.25173, 0.51317), (-0.62441, -0.90698), (-0.47925, 0.74832)]
False
인스턴스 :
[(-0.99103, 0.43842), (0.78128, -0.10985), (-0.84714, -0.20558), (-0.08925, -0.78608)]
[(0.15087, -0.56212), (-0.87374, -0.3787), (0.86403, 0.60374), (0.01392, 0.84362)]
[(0.1114, 0.66496), (-0.92633, 0.27408), (0.92439, 0.43692), (0.8298, -0.29647)]
[(0.87786, -0.8594), (-0.42283, -0.97999), (0.58659, -0.327), (-0.22656, 0.80896)]
[(0.43525, -0.8923), (0.86119, 0.78278), (-0.01348, 0.98093), (-0.56244, -0.75129)]
[(-0.73365, 0.28332), (0.63263, 0.17177), (-0.38398, -0.43497), (-0.31123, 0.73168)]
[(-0.57694, -0.87713), (-0.93622, 0.89397), (0.93117, 0.40775), (0.2323, -0.30718)]
[(0.91059, 0.75966), (0.60118, 0.73186), (0.32178, 0.88296), (-0.90087, -0.26367)]
[(0.3463, -0.89397), (0.99108, 0.13557), (0.50122, -0.8724), (0.43385, 0.00167)]
[(0.88121, 0.36469), (-0.29829, 0.21429), (0.31395, 0.2734), (0.43267, -0.78192)]