【发布时间】:2011-01-30 05:32:34
【问题描述】:
我正在尝试弄清楚如何实现捏拉缩放功能。我的问题是我不确定如何在算法上做到这一点。
我有两个手指的捏合位置以及它们自上一帧以来移动的量。起初,我尝试将捏合量设为两根手指之间距离的增量,但围绕这个概念所做的每一种方式都是不屈不挠的。
即使我设法使捏合工作得体,我仍然有缩放方向的问题以及如何使图像在捏合区域的中心放大...
是否有适当的方法来实现此类功能?
【问题讨论】:
标签: windows-phone-7 xna touch
我正在尝试弄清楚如何实现捏拉缩放功能。我的问题是我不确定如何在算法上做到这一点。
我有两个手指的捏合位置以及它们自上一帧以来移动的量。起初,我尝试将捏合量设为两根手指之间距离的增量,但围绕这个概念所做的每一种方式都是不屈不挠的。
即使我设法使捏合工作得体,我仍然有缩放方向的问题以及如何使图像在捏合区域的中心放大...
是否有适当的方法来实现此类功能?
【问题讨论】:
标签: windows-phone-7 xna touch
我还推荐阅读这篇文章,这是一个实施得非常好的“黄金标准”:
http://adtsai.blogspot.com/2010/09/pinch-zooming-using-xna4-on-wp7-getting.html
它还引用了捏合缩放插件,因此您可以只用鼠标在模拟器上测试捏合。
【讨论】:
您想要做的是使用内置的手势 API(特别是 Pinch 和 PinchComplete)。这样,您就可以利用 xna/wp7 团队已经内置的启发式方法。您的应用程序会以这种方式感觉“更加原生”,因为它会像操作系统的其他部分一样对捏合手势做出反应。
Nick Gravelyn 在此处对手势 API 进行了精彩介绍:
http://blogs.msdn.com/b/nicgrave/archive/2010/07/12/touch-gestures-on-windows-phone-7.aspx
【讨论】:
我发现很少有第三方解决方案的链接...
1) Dual-Touch SDK for Resistive Screens V1.0 Beta, Rotation Alpha
2) SciLor's HD2 / Leo Multitouch .NET CF DLL
我尝试使用 Dual-Touch SDK,它们在电阻屏手机上运行良好,但在电容屏手机上运行良好。
【讨论】: