2016-11-05 13 views
0

현재 사용자가 마우스 위치를 매 0.05 초마다 캡처하여 점과 다음 점 사이에 선을 그어 그 위에 페인트 할 수있는 프로그램이 있습니다. 그 설정으로 나는 원형, 직사각형 또는 문자 'P'와 같은 형태를 식별 할 수있는 방법을 찾고 있습니다.라인 집합이 모양과 유사한 지 확인하는 방법

현재의 알고리즘은 섹션의 화면을 나눈 다음 플레이어가 기록한 포인트로 섹션을 표시하고 표시된 섹션으로 매트릭스를 만든 다음 해당 매트릭스를 모든 모양 매트릭스와 비교합니다.

회전, 크기 또는 위치에 대한 지원이 부족합니다. 또한 임계 값을 제어하는 ​​것은 대부분의 경우 가짜 결과를 반환하는 까다로운 작업입니다. 'P'을 'P'로 식별 할 수있는 알고리즘이 필요합니다.

참고 : 현재 응용 프로그램은 C++ 프레임 워크에서 실행되므로 모든 라이브러리 또는 도구를 사용할 수 있지만 뒤에있는 알고리즘에 관심이 있습니다.

편집 : 문제를 생각한 후에 화면의 현재 그리드를 변경 한 대신 점을 캡처하고 크기를 변경하여 모양을 그리드에 맞춰 그리드 위에 표시하고 알려진 그리드와 비교합니다. 모양. 또한, 입력 회전 충분히 빠르게되는 한 후는 높은 비용을 가질 것이다 (비록 회전 문제를 해결하는 것 수 루프 리사이징 될 없지만

Picture of the process

이것은 위치 및 크기 문제를 해결 매우 안정적)

모양 비교 또는 회전을 처리하는 다른 방법을 기꺼이 환영합니다.

답변

0

나는이 문제를 해결하기 위해 화면의 현재 그리드를 변경했다. 대신 포인트를 캡처하고 크기를 변경하여 모양을 그리드에 맞춰 그리드 위에 그리 듯 알려진 모양과 비교한다. 또한, 입력 회전 충분히 빠르게되는 한 후는 높은 비용을 가질 것이다 (비록 회전 문제를 해결하는 것 수 루프 리사이징 될 없지만

Picture of the process

이것은 위치 및 크기 문제를 해결 매우 안정적)

+0

좋은 질문과 좋은 답변도! – eRaisedToX