1

我编写了一个使用鼠标的 C# 程序,它运行良好。我现在希望实现触摸支持。问题是我经常跟踪鼠标并在整个程序中使用 Point 和 Point3D 类。当我使用触摸时,我需要跟踪“鼠标”的移动位置。我可以得到触摸的坐标,但这就是我卡住的地方。我正在使用 Helix 3D Toolkit,大多数功能都需要 Point 或 Point3D 输入参数。我的问题是,有没有办法将 TouchPoint 转换为 Point 或 Point3D?或者有没有其他“简单”的方式来实现触摸支持?

这是我正在尝试做的一些代码:

private Point3D? GetPoints(TouchEventArgs e)
{
    var p = e.GetTouchPoint(ViewPort);
    var ray = Viewport3DHelper.Point2DtoRay3D(ViewPort.Viewport, p); //error here at p
    if (ray != null)
    {
        var pi = ray.PlaneIntersection(new Point3D(0, 0, 0), new Vector3D(0, 0, 1));
        if (pi.HasValue)
            return pi;
    }
    return null;
}
4

1 回答 1

3

弄清楚了。我刚刚用 p.Bounds.X 和 p.Bounds.Y 创建了一个新的 Point()。

于 2012-06-16T18:48:17.537 回答