2014-11-06 2 views
2

상황 : 나는 현재 프로젝트를 진행하고있어 복잡한 형태와 충돌 감지가 필요합니다복잡한 모양의 충돌 감지에 대한 대안 솔루션은 무엇입니까?

example image합니다.

이제 모양 전체 (검은 색 윤곽선)가 일반 이미지 (Graphics.DrawImage 사용)로 사용자에게 표시됩니다. 이미지는 GraphicsPath를 사용하여 저장되고 그려진 별개의 분리 된 부분으로 나뉩니다. 사용자는 섹션을 클릭하고 영역 다음 클릭하면 경로가 채워집니다

문제 :. 내 문제가 평균적으로 이미지에 대한 338 개 섹션 있다는 것입니다.

1 : 41,1 : 42,1 : 43,1 : 44,1 : 45,1 : 46,2 :

예는 하나 GraphicsPath 섹션에 대한 데이터를 저장 46,3 47,4 : 47,5 : 48,6 : 48,7 : 48,8 : 48,9 : 48,10 : 48,11 : 49,12 : 48,13 : 48,14 : 48,15 : 48 , 16 : 48,17 : 48,18 : 48,19 : 48,20 : 47,21 : 47,22 : 47,23 : 47,24 : 46,25 : 46,26 : 45,27 : 45,28 : 44,29 : 44,30 : 43,31 : 43,32 : 43,33 : 43,34 : 43,35 : 42,36 : 42,37 : 43,38 : 43,39 : 43,40 : 43 , 41 : 44,42 : 44,43 : 44,44 : 45,45 : 46,46 : 46,47 : 47,48 : 48,49 : 48,50 : 48,51 : 48,52 : 48,53 : 48,53 : 47,54 : 47,54 : 46,54 : 45,54 : 44,54 : 43,54 : 42,54 : 41,53 : 40,53 : 39,52 : 38,52 : 37 , 52 : 36,51 : 35,51 : 34,50 : 33,50 : 32,50 : 31,50 : 30,50 : 29,50 : 28,50 : 27,50 : 26,50 : 25,50 24 : 50 : 23,50 : 22,51 : 21,51 : 20,51 : 19,51 : 18,51 : 17,51 : 16,50 : 15,50 : 14,50 : 13,50 : 12 , 50 : 11,50 : 10,50 : 9,50 : 8,49 : 7,49 : 6,49 : 5,49 : 4,48 : 3,48 : 2,48 : 1,47 : 1,46 : 1,45 : 1,44 : 1,43 : 1,42 : 1,41 : 40 : 1,39 : 1,38 : 1,37 : 1,36 : 1,35 : 1,34 : 1,33 : 1,32 : 1,31 : 1,30 : 1,29 : 1,28 : 2,27 : 2,26 : 2,25 : 2,24 : 2,23 : 3,22 : 3,21 : 3,20 : 4 : 19 : 4,18 : 5 : 17 : 5,16 : 6 15 : 6,15 : 7,14 : 7,13 : 8,12 : 9,11 : 10,10 : 11,10 : 12,9 : 13,8 : 14,8 : 15,7 : 16,7 : 17,7 : 18,6 : 19,6 : 20,6 : 21,5 : 22,5 : 23,5 : 24,4 : 25,4 : 26,4 : 27,4 : 28,4 : 29 3 : 30,3 : 31,3 : 32,3 : 33,3 : 34,2 : 35,2 : 36,2 : 37,2 : 38,2 : 39,

전체 많은 양의 데이터를 저장하고 GraphicsPath로로드 한 다음 결국 그립니다. X

형식 : Y, ...

내 질문 : 지금 여기

정말 개방과 내가 사과 할 수있는 질문이다. 그러나이 문제에 대한보다 우아한 해결책이 있습니까? 보다 단순화 된 버전? 저의 상사는 제가 생각해 낸 해결책으로 감동하지 않고 더 나은 것을 찾도록 지시했습니다. 우리는 닷넷과 호환되는 새로운 기술을 사용하고 있습니다. 3.5

모두 감사합니다.

+0

많은 경로로 인해 부정적인 성능 영향을 측정 했습니까? – thumbmunkeys

+0

예 GraphicsPath가 많이 있다는 것을 알고 있습니다. 나는 그것이 약간의 성능 이슈를 가질 것이라고 생각했지만 이것은 지금까지 모든 이론이다. 나는 그것을 구현하지는 않았지만이 솔루션이 나를 걱정할 때 더 나은 해결책을 찾고있다. –

+1

나는 얼마나 많은 경로가 절대적으로 원활하게 처리 될 수 있는지 놀라 울 정도로 놀랐다. 그래도 실버 라이트 였고 gdi + – thumbmunkeys

답변

0

수동 솔루션으로 끝났습니다. 내 솔루션은 사용자가 포인트를 정의해야합니다. 더 많은 포인트 = 매끄럽다. 더 적은 포인트 = 더 많은 폴리곤.

관련 문제