2016-06-06 1 views
-4

포인트 배열을 가지고 있습니다 (사용자가 화면에서 스 와이프 한 것). 포인트의 배열이 얼마나 "curvy"인지를 계산하고 싶습니다. 예를 들어 직선과 매우 유사한 곡선은 반원보다 곡선이 작습니다.점 집합을 사용하여 곡선의 "curviness"를 계산하는 방법은 무엇입니까?

필자는 곡선에 피팅을 적용하고 곡률 반경을 계산하는 것으로 생각했지만 포인트가 항상 함수를 형성하지는 않으므로 작동하지 않을 것이라고 생각합니다 (수직선 테스트에 실패 함)?

나는 해결책이 더 높은 정확도 대신에 더 단순하거나 더 높은 성능을 선호한다. 전체 솔루션을 나와 함께 쓰지 않아도됩니다. 올바른 방향으로 조금 움직였습니다. 감사합니다

+5

"curviness"를 계산하는 수학 함수를 찾으려면 [math.stackexchange.com] (http://math.stackexchange.com/)에서이 질문을하는 것이 좋습니다. –

+0

@ jonny-henly이 컨텍스트는 성능에 영향을받지 않는 간단한 솔루션을 찾고 있었기 때문에 더 적합합니다. – Jake

답변

1

이것은 매우 저렴한 솔루션이지만 포인트가 오목면에서 아래로 오갈 때까지 커브 하나 이상을 쓸어 버리면 정확도가 떨어집니다. 그러나 포인트의 오목 함이 데이터 세트에서 동일하게 유지되면 이는 좋을 것입니다.

왼쪽에서 오른쪽 순으로 3 개 그룹으로 나누어 각각 A, B, C라고 부르면 다음과 같은 점을 고려하십시오. 각도 ABC로 주어진 각도를 계산하십시오. 그런 다음 각 그룹에 대해 3 점의 평균을 구하십시오. 점이 직선이면 평균값은 180이됩니다. 점이 더 커지면 평균값은 훨씬 작아집니다.

+0

완벽하게 작동합니다. 고맙습니다 – Jake

관련 문제