C++에는 모든 숫자의 제곱근을 반환하는 사전 정의된 함수 sqrt가 있습니다. 회전 캘리퍼스 방법은 알고리즘이나 계산 기하학을 해결하는 데 사용되는 기술입니다.
손 회전은 손이 회전할 때마다 수직 방향을 보여주는 회전 캘리퍼 플롯의 실제 예를 보여줍니다. 우리는 또한 다각형을 사용하여 이 개념을 이해할 수 있습니다.
이 기사에서는 회전 캘리퍼스 방법을 사용하여 두 좌표점 사이의 최대 거리를 구하겠습니다. 跨度>
다음 구문은 프로그램에서 사용됩니다 -
으아악Vectors- C++에서 키워드 벡터로 시작하고 벡터를 초기화합니다.
datatype- 벡터로 표현되는 데이터 요소의 유형입니다.
name- 벡터의 이름입니다.
헤더 파일iostream, vector및cmath를 사용하여 프로그램을 시작합니다.
우리는x및y좌표를 저장할 구조 이름 포인트를 생성하고 있습니다.
두 좌표점 사이의 거리를 계산하기 위해 이중 데이터 유형distance()의 함수 정의를 정의하고 있습니다. 여기서Points p1및Point p2는 미리 정의된 함수 sqrt와 거리 공식을 사용하여 좌표값과 거리를 반환하는 매개변수입니다.
우리는 이중 데이터 유형이 매개변수Point p1, Point p2 및Point p3를 허용하여 외적 벡터(예:p2-p1 b> 및p3-p1)를 계산하는CP()라는 함수 정의를 정의합니다. w.r.t x 및 y 좌표.
이제 인수를 점 벡터로 사용하고 두 좌표 평면 사이의 거리를 최대화하는 이중 데이터 유형rotatingCaliper()의 함수 정의를 만들고 있습니다.
최대 거리 계산을 만족시키기 위해 추적할 변수 결과를0으로 초기화합니다. 점의 크기를 찾기 위해 size()라는 미리 정의된 함수를 사용하고 이를 변수 n에 저장합니다.
두 변수j및k를 1로 초기화하고 다음을 수행합니다. -
우리는 다각형의 다음 점으로j이동하고 있으며 외적CPi+1] % n'현재 가장자리'points[i], points[ 및 다음 가장자리'points [ j]'는 현재 간선'points[i]', points[ (i + 1) % n]'및 점 [(j + 1) 뒤의 다음 점'의 외적 CP보다 작습니다. % n]'가장자리. 이렇게 하면 현재 가장자리가 다음 가장자리에 수직인지 확인됩니다.
현재 점'점[i]'과 다음 점'점[k]'사이의 거리가 현재 점'점보다 작을 때까지 다각형의 다음 점으로k을 이동합니다. [ i]'사이의 거리 ''와 다음 점 뒤의 점
'점[(k+1)%n]. 그러면 다음 점이 현재 점에서 가장 멀리 떨어져 있는지 확인됩니다.이제 우리는 점j, k,과 현재 점'point[i]'사이의 거리를 계산하고 이 모든 점을 곱한 다음result
변수에서 최대값을 얻습니다.주 함수를 시작하고 좌표 평면의 값을
마지막으로 함수 이름rotatingCaliper()를 호출하고'points'
값을 매개변수로 전달하여 회전하는 캘리퍼스 플롯의 최대 거리를 얻습니다.위 내용은 회전 캘리퍼스 방법을 사용하여 좌표 평면의 두 점 사이의 최대 거리를 계산합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!