0

任意の点からの光線がポリゴンに当たるかどうかを知りたいです。交差が発生する空間内のポイントと、そのポリゴンへの参照を知っておくと便利です。私は System.Windows.Media.Media3D ライブラリを使用しており、レイ トレース テストを実行しましたが、VisualTreeHelper.HitTest によって返された HitTestResult オブジェクトから必要な情報をまだクラックしていません。

私は間違った場所を探していますか?

任意の交差をテストする別のアプローチはありますか?

コデス:

private void MainViewport_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    // Retrieve the coordinate of the mouse position.
    Point pt = e.GetPosition((UIElement)sender);

    // Perform the hit test against a given portion of the visual object tree.
    HitTestResult result = VisualTreeHelper.HitTest(MainViewport, pt);

    if (result != null)
    {
        // Perform action on hit visual object.
    }
}
4

2 に答える 2

2

System.Windows.Media.Media3D はわかりませんが、

  1. ビュープレーンの「目の座標」からマウス座標へのベクトルを作成して、光線の方向を作成する必要があると思います
  2. 多角形が平面の場合、平面と光線の交点を解いてその平面のヒット座標を取得し、その点が多角形内にあるかどうかを調べることができます

少し漠然とした回答ですが、参考になれば幸いです。

于 2010-10-28T17:40:52.470 に答える
0

HitTestResultをにダウンキャストできますRayHitTestResultか? それはあなたが必要とする情報を持っていますか?

于 2011-04-01T10:57:51.970 に答える