2009-08-28 8 views
2

사용자가 태블릿에서 스타일러스를 드래그하면 일련의 좌표가 표시됩니다. 펜 경로를 부드러운 선으로 근사하고 그 뒤에 몇 개의 샘플 점만 남기고 싶습니다. 어떻게 할거 니?태블릿 입력에서 매끄러운 선 그리기

즉, 사용자가 태블릿으로 그림을 그릴 때 멋진 응답 회선을 어떻게 렌더링하겠습니까? 직선으로 도트를 연결하는 것만으로는 충분하지 않습니다. 실제 그리기 프로그램은 샘플 점이 얼마나 가깝거나 멀리 있더라도 선을 곡선으로 그리는 작업을 훨씬 잘 수행합니다. 어떤 사람들은 심지어 매끄러운 양을 알려주는 번호를주고, 지저분한 펜과 손을 계산합니다. 이 물건을 어디에서 배울 수 있습니까?

+0

HT 관련이있다 tp : // stackoverflow.com/questions/3347483/writing-a-paint-program-a-la-ms-paint-how-to-interpolate-between-mouse-move-eve – kervin

답변

2

나는이 오래된 질문은 알고 있지만 저도 같은 문제를 겪고 난 2 개 개의 다른 솔루션과 함께 제공 : 사용자가 경로 포인트를 삽입 할 때, 하나 :

  • 첫 번째 방법은 두 가지 해상도를 사용하는 것입니다 그것들을 직선으로 연결하십시오. 둘째, 사용자가 획을 끝내면 선을 삭제하고 그 위에 선을 그리고 그 위에 스플라인을 그립니다. 그것은 직선보다 부드러워 야합니다.

  • 두 번째 접근법은 이전 샘플링 된 점의 가중 평균을 사용하여 새 점을 부드럽게하는 것입니다. 따라서 새로운 샘플링 된 점 [x1, y1]을 그릴 때마다 직접 그려야합니다. 이전의 샘플링 된 점 [x2, y2]를 취하여 두 점의 가중 평균에 새로운 중간 점을 만듭니다. 의사 코드는 다음과 같을 수 있습니다.

    newPoint = [x1, y1]; oldPoint = [x2, y2];

    점 2 페인트 = [(x1 * 0.3) + (x2 * 0.7), (y1 * 0.3) + (y2 * 0.7)]; oldPoint = newPoint; 여기가 있습니다 : 0.7 및 0.3 가중 평균에 대한 계수 인

    (당신은 내가이

    UPDATE 12월 13일 도움이 될 희망 :

을 부드럽게 소망하는 얻을 수를 변경할 수 있습니다 다른 묘화 방법을 설명하는 문서 잘 적용될 수 개념 (에지 평활화, 베 지어 곡선 매끄러운 관절)

http://perfectionkills.com/exploring-canvas-drawing-techniques/

0

위의 내용은 학업 목적으로 만 구현 한 것이 아니지만 위키 백과의 interpolation 문서를 참조하십시오.

는 문서로부터 추출 :

보간 기지 데이터 포인트들의 개별 집합의 범위 내에 새로운 데이터 요소를 구성하는 방법이다.

공학 및 과학 분야에서 샘플링 또는 실험을 통해 얻은 데이터 포인트가 많으며 이러한 데이터 포인트에 매우 근접한 함수를 만들려고합니다. 이것을 커브 피팅 또는 회귀 분석이라고합니다. 보간은 함수가 데이터 점을 정확히 통과해야하는 곡선 맞춤의 특수한 경우입니다.

희망이 있습니다.