C#에서 다각형 내 점 위치 결정
다각형으로 작업할 때 일반적인 작업은 주어진 점이 다각형 내에 있는지 확인하는 것입니다. 경계. 이 기사에서는 외부 라이브러리에 의존하지 않고 C#에서 이 기능을 구현하는 방법을 살펴보겠습니다.
우리의 접근 방식은 두 단계로 구성됩니다.
1. 외부 경계 계산:
먼저 정점의 최소 및 최대 X 및 Y 좌표를 찾아 다각형의 외부 경계를 정의합니다. 이는 점이 다각형의 경계 상자 내에 있는지 빠르게 판단하는 데 도움이 됩니다.
2. 점 포함 확인:
점이 실제로 다각형 내부에 있는지 확인하기 위해 "IsPointInPolygon" 알고리즘을 사용합니다. 이 알고리즘은 다각형의 정점을 반복하여 점이 각 정점 쌍을 연결하는 선의 왼쪽 또는 오른쪽에 있는지 확인합니다. 점이 지속적으로 이 선의 같은 쪽에 있으면 다각형 내부에 있는 것으로 결정됩니다.
다음은 C#에서 알고리즘을 구현한 예입니다.
public bool IsPointInPolygon(Point[] polygon, Point point) { bool result = false; int j = polygon.Length - 1; for (int i = 0; i < polygon.Length; i++) { if (polygon[i].Y < point.Y && polygon[j].Y >= point.Y || polygon[j].Y < point.Y && polygon[i].Y >= point.Y) { if (polygon[i].X + (point.Y - polygon[i].Y) / (polygon[j].Y - polygon[i].Y) * (polygon[j].X - polygon[i].X) < point.X) { result = !result; } } j = i; } return result; }
다음과 같습니다. 이러한 단계를 통해 C# 및 WinForms만 사용하여 주어진 점이 다각형 내에 위치하는지 여부를 효율적으로 확인할 수 있습니다.
위 내용은 C#에서 점이 다각형 내부에 있는지 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!