채널의 단면 인 두 가지 모양이 있습니다. 두 개의 정의 된 점 사이의 중간 점의 횡단면을 계산하고 싶습니다. 이 상황에서 사용하는 가장 단순한 알고리즘은 무엇입니까?2D 보간 알고리즘
추신 : 복잡한 자연스러운 이웃과 포아송과 같은 여러 알고리즘을 발견했습니다. 신속하게 구현할 수있는 간단한 솔루션을 찾고 있습니다.
편집 : 그것은 오해의 소지가 될 수 있기 때문에 나는 제목에서 단어 "간단한"를 제거
채널의 단면 인 두 가지 모양이 있습니다. 두 개의 정의 된 점 사이의 중간 점의 횡단면을 계산하고 싶습니다. 이 상황에서 사용하는 가장 단순한 알고리즘은 무엇입니까?2D 보간 알고리즘
추신 : 복잡한 자연스러운 이웃과 포아송과 같은 여러 알고리즘을 발견했습니다. 신속하게 구현할 수있는 간단한 솔루션을 찾고 있습니다.
편집 : 그것은 오해의 소지가 될 수 있기 때문에 나는 제목에서 단어 "간단한"를 제거
이 간단하다의 경계를 따라 균등하게 간격으로 N 점을 그릴
간단한 : 수정없이 기존 단면의
이 두 번째 제안은 너무 단순 할 수도 있지만, 아무도 간단하지 않다고 생각합니다. 영업 이익의 코멘트 다음
편집 : (재 코멘트를 너무 많이)
글쎄, 당신은 간단한 방법을 문의 않았다! 나는 당신이하는 것처럼 첫 번째 방법으로 같은 문제가 생겼는지 확신 할 수 없다. 횡단면이 너무 이상하지 않은 경우 (아마도 볼록 다각형 인 경우 가장 좋음) 하나의 횡단면의 왼쪽을 다른면의 오른쪽으로 매핑하는 등의 이상한 작업을 수행하지 않아야합니다 (이로 인해 많은 교차 선)이 방법은 어떤 종류의 합리적인 횡단면을 만들어야합니다. 삼각형과 직사각형을 제안하는 경우 삼각형이 그 꼭대기에있는 꼭지점 하나에 앉아 있다고 가정합니다. 지도는 직사각형의 왼쪽 상단을 가리킨 다음 해당 지점을 결합하는 두 단면의 경계를 따라 같은 방향 (시계 방향 또는 반 시계 방향)으로 진행합니다. 교차 선이 보이지 않고 두 횡단면 사이의 어떤 거리에서도 잘 정의 된 모양을 볼 수 있습니다.
두 번째 것은 분명히 너무 간단합니다. 첫 번째 알고리즘은 모양의 둘레에 따라 다르며 경우에 따라 실패합니다. 직사각형에서 삼각형으로 모핑하는 것. 두 횡단면의 점들이 제대로 겹치지 않을 것입니다. – Gayan
알립니다. 나는 이전의 코멘트를 할 때 첫 번째 방법을 오해했다. 감사. – Gayan
+1 - 첫 번째 해결 방법은 올바른 것으로 보입니다. 간격이 일정한 간격을 유지하는 것은 불필요합니다 (일반적으로 불가능). 두 점 (예 : 상단 중앙)에서 해당 점을 선택한 다음 두 점을 모두 따라 가면서 다른 점이없는 점을 추가하면됩니다. 예를 들어, 사각형 1x2 사각형은 1/6, 2/6, 4/6 및 5/6의 꼭지점을 가질 수 있습니다. 정삼각형은 1/3 = 2/6과 2/3 = 4/6에있을 수 있으므로 1/6과 5/6 주위에 새로운 정점이 필요합니다 (예 : 첫 번째와 마지막면의 중간 점). –
메모 성능 메트릭의 해결 방법에 대한 모호한 점이 있지만 해결 방법의 출력 품질을 정의 할 것입니다. 가장 중요한 점은 양쪽 횡단면 모두에 n
점을 그릴 때 어떤 종류의 서신인지를 결정합니다. 즉, 고성능 마크가 제안한 방식으로 수행하면 점수를 지정하는 순서가 중요 해집니다 .
두 단면을 동시에 회전 (직교)하는 평면을 제안한 다음 한 단면의 평면과 교차하는 점의 집합은 다른 단면의 평면과 교차하는 점의 집합에 일치시켜야합니다. 가설 적으로,이 세트의 포인트 수에는 제한이 없지만 원래 상황에서 통신 문제의 복잡성을 확실히 줄일 수 있습니다.
다음은이 문제에 대한 또 다른 시도입니다. 더 나은 시도라고 생각합니다.두 단면 C_1
감안
C_2
장소가 비교적 놓인다 방법 말이되도록 (x,y)
좌표 시스템과 글로벌 기준 프레임에 각각 C_i
에게. 각 C_i
을 위아래 곡선 U_i
및 L_i
으로 분할하십시오. 이 아이디어는 곡선 U_1
을 U_2
과 L_1
에서 L_2
으로 연속적으로 변형하려고 할 것이라는 아이디어가 될 것입니다. (원하는 경우이 방법을 확장하여 각 C_i
을 m
곡선으로 분할 할 수 있습니다.)
이렇게하는 방법은 다음과 같습니다. 각각 T_i = U_i, or L_i
샘플 n
점에 대해, 그리고 interpolating 다항식 P{T_i}(x)
을 결정하십시오. 아래에 적지 않게 언급 된 것처럼, 다항식을 보간하는 것은 끝점에서 특히 진동하기 쉽습니다. 보간 다항식 대신에, 대신에 훨씬 더 강건한 최소 제곱 적합 다항식을 사용할 수 있습니다. 그런 다음 변형이 t=0
우리가 U_2
에 있습니다에서 (예에서 어떤 지점에서 변형 Q
이 t
가 정의 0<=t<=1
을 통해 정의된다 Q{P{U_1},P{U_2}}(x, t) = (t * a_0 + (1 - t) b_0) + ... + (t * a_n + (1-t) * b_n) * x^n
로 P{U_2}(x) = b_0 + b_1 * x + ... + b_n * x^n
에 다항식 P{U_1}(x) = a_0 + a_1 * x + ... + a_n * x^n
의 변형을 정의하고 t=1
에서 우리는 U_1
에서와 t
다른 모든에있다 우리는 두 가지의 지속적인 변형이 있습니다.) 정확도는 Q{P{L_1},P{L_2}}(x, t)
입니다. 이 두 가지 변형은 어떤 t
에서 샘플링 할 수있는 두 횡단면 간의 연속적인 표현을 구성합니다.
사실이 모든 작업은 두 단면의 보간 다항식의 계수를 선형 보간법으로 수행합니다. 횡단면을 분할 할 때, 종단점에서 나누어야하는 구속 조건을 설정해야합니다. 그렇지 않으면 변형에 "구멍"이 생길 수 있습니다.
나는 그것이 분명히 희망적이다.
편집 : 보간 다항식의 발진 문제 해결.
횡단면이 항상 볼록한 다각형입니까? 아니면 오목 할 수 있습니까? –
단면은 볼록 영역과 오목 영역으로 구성 될 수 있습니다. – Gayan
High Performance Mark에서 제공 한 솔루션 이외의 솔루션이 있는지 알고 싶습니다. – Gayan