2010-08-13 3 views
1

인사, 모두들.WriteableBitmap을 사용하여 간단한 애니메이션을 만드는 방법은 무엇입니까?

저는 실버 라이트 기본을 배우려고하고 있으며, 그 이유 때문에 간단한 만델 브로 세트 드로잉 응용 프로그램을 작성하기로 결정했습니다. Silverlight에서는 물론입니다. ;)

대부분 응용 프로그램이 완료되었습니다. WriteableBitmap을 사용하여 픽셀에서 작업하고 간단한 이미지를 빈 폼에 배치하여이 비트 맵을 표시합니다 (Source 속성 사용). 심지어는 확대/축소하고 주변의 프랙탈을 제어 할 수있게되었습니다.

이제 약간의 애니메이션을 추가하여 조금씩 위로 향신료를주고 싶었습니다. 나는 스칼라 그래픽 객체이기 때문에 프랙탈 이동을 할 수 없다는 것을 알고 있습니다. 예를 들어, 확대 할 때 초기 확대/축소가 부드러운 애니메이션이고 그 후에 응용 프로그램이 새로운 것을 다시 계산하면 멋질 것입니다. "확대 날카로운 칼로. "이미지. 마찬가지로, 프랙탈을 움직이는데 사용되는 이미지를 드래그하고 마우스가 이미지 영역을 떠난다면, 프랙탈이 초기 위치로 부드럽게 돌아 간다면 멋질 것입니다 (이제는 그냥 "스냅"으로 돌아갑니다). 초기 설정이 복원 됨).

제 문제는 애니메이션에서 어떤 매개 변수를 제어해야할지 잘 모르는 것입니다. 예를 들어 확대/축소를 위해 ScaleTransform을 사용하고 있지만 이미지 객체의 변형 속성을 사용하는 대신 비트 맵 자체에 WriteableBitmap을 렌더링하는 데 사용됩니다. 왜냐하면 내가 이미지 속성을 조작하기 시작했을 때 전체 이미지가 폼을 돌아 다니기 시작했기 때문에 경계가 머물러 있기 때문입니다.

Silverlight가 원래 의도하지 않은 것 (또는이 모든 것을 잘못 시작하기 시작한 것 같습니다)이 의심스러운 부분이 있지만 작은 애니메이션을 추가 할 수 있다면, 그게 좋을거야. 이와 같이, 어떤 조언을 부탁드립니다.

+1

재미 있겠지만 실버 라이트의 "기본 사항을 배우는"것이 목적이라면 멀리 떨어져 있습니다. – AnthonyWJones

+0

왜? 전 예술가가 아니기 때문에 Expression Blend를 얻을 수는 있지만 Silverlight의 내부가 어떻게 작동하는지 배우는 데 더 많은 관심이 있습니다. 따라서 코드 자체에서 작동합니다. :] 내가 설명하는 것이 너무 엉뚱한 것이라면, UI 요소가 표시되는 방식을 제한하기 위해 프레임을 만드는 방법은 어떨까요? 예 : 200x200 이미지가 있지만 이미지의 크기를 조정하지 않고 100x100 부분 만 표시하려고합니다. 내가 어떻게 할 수 있니? – Shaamaan

답변

0

Silverlight 애니메이션 엔진을 사용하여 이미지 요소 나 컨테이너가 아닌 사용자의 사용자 지정 속성에 애니메이션을 적용하여 이미지 디스플레이를 제어하는 ​​것처럼 들리는 것 같습니다. 이미지의 모양을 제어하기위한 사용자의 속성을 두 번 Dependancy Properties으로 노출 된 경우

은 다음 애니메이션 시스템이 원활하게 시간이 지남에 따라 설정을 변경하려면 기본 DoubleAnimation에게 개체를 사용할 수 있습니다. Expression Blend에서 애니메이션을 제작할 수도 있습니다.

애니메이션 엔진을 사용하면 모션을 원활하게하는 등의 기능을 완화 할 수 있습니다. 오브젝트가 어떻게 구조화되었는지에 대한 세부 사항이 있다면 좀 더 구체적 일 수 있지만 이것이 도움이되기를 바랍니다.

관련 문제