如何在Windows Phone上实现倾斜效应?

我想在Android操作系统上单击button时获得倾斜效果。

倾斜效果:不是整个button将被视为按下。 只有发生触摸事件的部分似乎被按下。

这在Android上很容易吗?

在这里输入图像说明

Solutions Collecting From Web of "如何在Windows Phone上实现倾斜效应?"

一个简单的方法是使用canvas绘制四边形。

考虑每个angular落。 “未触摸的”矩形将是全尺寸,被触摸的矩形将更小。

触摸和未触及的框

你只需要使用你计算矩形的每个部分的点绘制你的四边形。 你可以得到触摸位置,然后找出多less“重量”给每个点。

要计算每个angular落,需要弄清楚赋予触摸坐标的“重量”有多less,以及赋予未触摸坐标的“重量”有多less。 如果触摸左上angular,则该angular将使用所触摸的坐标的100%,而其他三个angular将全部使用未触摸的坐标。

碰到左上角

如果你碰到顶部的中间,你会得到这样的形状:

触及顶部中间

我们可以计算任何触摸点的angular落,通过计算你的触摸距离多远

碰到底部左侧

float untouchedXWeight1 = Math.abs(xt - x1)/width; //maximum of 1, minimum of 0 float untouchedYWeight1 = Math.abs(yt - y1)/height; float untouchedWeight1 = (untouchedXWeight1 + untouchedYWeight1)/2; //also maximum of 1, minimum of 0 float touchedWeight1 = 1 - untouchedWeight1; 

所以用这些权重,你可以计算你的X和Y位置的angular落:

 x1 = xUntouched1 * untouchedWeight + xTouched1 * touchedWeight1; y1 = yUntouched1 * untouchedWeight + yTouched1 * touchedWeight1; 

然后做类似的其他3个angular落。

我在这里创build了一个初稿: https : //github.com/flavienlaurent/TiltEffect

在第二步,我会使它与button等可用

不幸的是,我没有使用HalR的非常好的(但对我来说也是math)答案