我正在创建一个隐藏对象游戏,并尝试在使用 Eclipse 找到该对象时对其进行标记。我已经手动保存了通过 GestureListener_Tap 事件获得的每张图片的左上角和右下角坐标。
问题是当我尝试使用此代码绘制以坐标为界的日食时
WriteableBitmapExtensions.DrawEllipse(writeableBmp, AnsX1, AnsY1, AnsX2, AnsY2, Colors.Red);
日食的位置总是在左上角。使用以下代码标记像素位置表明它们的位置确实与我对 GestureListener_Tap 的期望不同。
writeableBmp.SetPixel(AnsX1, AnsY1, Colors.Red);
writeableBmp.SetPixel(AnsX2, AnsY2, Colors.Red);
我标记位置的代码:
private void fadeOutAnimation_Ended(object sender, EventArgs e)
{
WriteableBitmap writeableBmp = new WriteableBitmap(bmpCurrent);
imgCat.Source = writeableBmp;
writeableBmp.GetBitmapContext();
WriteableBitmapExtensions.DrawEllipse(writeableBmp, AnsX1, AnsY1, AnsX2, AnsY2, Colors.Red);
writeableBmp.SetPixel(AnsX1, AnsY1, Colors.Red);
writeableBmp.SetPixel(AnsX2, AnsY2, Colors.Red);
// Present the WriteableBitmap
writeableBmp.Invalidate();
//Just some animation code
RadFadeAnimation fadeInAnimation = new RadFadeAnimation();
fadeInAnimation.StartOpacity = 0.2;
fadeInAnimation.EndOpacity = 1.0;
RadAnimationManager.Play(this.imgCat, fadeInAnimation);
}
我错过了什么?
编辑:
我在下面的回答没有考虑屏幕方向的变化。请参阅我在答案下方的评论。如何将像素坐标映射到图像坐标?
编辑2:
找到了正确的解决方案。更新了我的答案