0

이미지 타일이 거의없는 캔버스를 회전하려고합니다 (200x200 이미지 4 개, 큰 사각형을 만들기 위해 함께 두었습니다). 회전도> 0,의이 (30)를 가정 해 봅시다 각각의 이미지 타일 사이에 공간이있는 경우 enter image description hereWindows Phone 7.5 이미지가 포함 된 캔버스 회전

가 : enter image description here

내가 원하는 것은 각 이미지 사이에 공간이없는 회전 정도가 0 인 경우는 괜찮습니다 타일 ​​: 여기

myCanvasCompositeTransform.CenterX = 200; 
myCanvasCompositeTransform.CenterY = 200; 
myCanvasCompositeTransform.Rotation = 30; 

가 있습니다 : 여기 enter image description here

는 캔버스를 회전의 코드는 소스 코드의 링크 : source code


날, 덕분에이 문제를 해결하기 위해 도와주세요!

답변

2

두 번째로 회전 된 스크린 샷에서 보는 내용은 이미지 사이의 공백이 아닙니다. 그 뒤에 검은 배경이있는 이미지의 앤티 앨리어싱입니다. 픽셀과 함께 대각선으로 직선을 그리는 방법이 없기 때문입니다.

효과를 얻으려면 몇 가지 시도해 볼 수 있습니다.

  1. 이미지의 전체 색상과 비슷한 색상을 가진 모든 이미지 뒤에 큰 사각형을 넣으십시오. 이렇게하면 줄이 덜 눈에.니다.

  2. 각 이미지 뒤에 작은 사각형을 위와 같이 색을 칠하십시오.

  3. 코드를 사용하여 이미지를 하나의 이미지로 결합한 다음 단일 이미지를 회전합니다.

+0

실제로 복잡한 배경의 이미지를 사용하겠습니다. 따라서 (1)과 (2)는 적용되지 않는다. (3) 들어, 그것은 해결책 인 것 같습니다. 하지만 문제는 GestureListener.DragDelta 이벤트에서 캔버스를 다시로드하는 것입니다. canvas.Children.Add() 전에 항상 모든 이미지 타일을 스티칭하면 재로드 프로세스가 훨씬 느려집니다. –

+0

나는 그것을 더 빨리하기 위해 이것을 제안 할 것이다. (1) 드래그 이벤트에서 이전과 같이 이미지를 추가하고 큰 이미지 위에 놓은 다음 백그라운드에서 새 큰 이미지를 빌드하고 완료되면 "떠 다니는"작은 이미지를 제거하십시오. – Bryant

관련 문제