2009-02-26 2 views
2

캔버스 상단에 애플리케이션을 구현하고 있는데, 모든 마우스 이동시 다시 그려지는 간단한 DOM으로 구성됩니다 (예, 필요합니다). 성능 문제 때문에 일부 부품 만 다시 그려지는 것이 아닙니다. 필요합니다.드로잉 애플리케이션 확대/축소 컨셉

응용 프로그램은 잘 작동하지만, 내가보기 방법은,이 세 가지 방법으로 수행 할 수있는 줌 기능을 추가 할 :

1 - (모든 DOM 요소가 다시 계산됩니다 위치와 크기를) 사용자가 확대하거나 축소 할 때마다 정밀도와 문제가있을 수 있습니다. 매우 좋은 추상화가 아닙니다.

2 - 캔버스에 해상도 속성이 있습니다. 즉, 사용자가 축소 할 때 해상도가 1에서 .75로 변경 될 수 있습니다.) - 모든 다시 그릴 때마다 계산을 수행해야합니다.

3 - 내장 된 translate() 및 scale() metho ds - 아마도 가장 우아하고 빠른 솔루션 일 수도 있지만 전혀 직관적이지는 않습니다. 나 또는 다른 누군가가 나중에 어떻게 수행되는지 이해하기 어려울 수 있습니다 (이러한 방법은 전체 캔버스에서 작동합니다. 먼저 번역하고 캔버스의 크기와 그 이후에 그려지는 모든 것이 '마법처럼'번역되고 크기가 조정됩니다.)

내가 가장 생각하거나 다른 가능성이있는 것은 무엇입니까?

+0

전체 프로젝트에 행운을 빕니다. 당신이 짓고있는 것은 정말로 어렵습니다. – Natrium

+0

안녕하세요 바스코, 이제 내 애플 리케이션에서 동일한 구현해야합니다. 이 주제에 대한 경험을 나눌 수 있습니까? 감사. –

답변

1

내장 translate()/scale() 메소드를 사용합니다. 이러한 방법의 성능과 품질에 대해 걱정이된다면 다른 옵션을 사용하여 결과를 비교해 볼 수있는 방법으로 바꾸어보십시오.