2011-12-13 1 views
2

나는 줌 (ScaleTransform)이있는 캔버스가 있습니다. 이제 임의의 확대/축소 값으로 캔버스 크기를 조정했습니다. 모든 MouseDown 이벤트와 함께 MouseDown Point에 RectangleGeomtry를 추가하고 있습니다. 하지만 이상한 점은 Shad가 MouseDown Point에 +/- dx 및 +/- dy를 추가하여 캔버스에 추가되는 것입니다.WPF 캔버스의 mousedown point에 모양 추가하기

왜 이런 일이 일어 났는지에 대한 모든 단서가 감사합니다.

답변

1

크기가 조정 된 캔버스에서 점의 역변환 (크기 조정 및 변환)을 얻어야합니다. 그런 다음 지오메트리를 생성 한 후에 transform (Scale and Translate)을 적용합니다. 그것은 효과가 있었다. 그게 최선의 방법인지 확실하지 않습니다.

0

스케일 변환을 적용하면 모든 점이 변형 (이동)됩니다. 예를 들어 점 A (10,20)가 있고 이미지에 2의 눈금을 적용하면 점 A는 A (20,40)가됩니다. 크기 조정 된 이미지에 점을 추가하려면 좌표를 조정해야합니다. (눈금을 곱하십시오)

+0

아니요, 곱하면 안됩니다. 크기가 조정 된 캔버스에서 지오메트리를 생성 한 후 포인트의 역변환 (스케일 및 변환)을 적용하고 변형 (변형 및 변환)을 적용해야합니다. 그것은 효과가 있었다. 그게 최선의 방법인지 확실하지 않습니다. – Sam

관련 문제