2017-05-03 3 views
0

内部点を検出:私は2つの気筒から作られた3次元形状を有する3Dボックス

ドット(黒と白)が各気筒に円形の端部の起源です。私は3点(白い点)を取得したいので、シリンダー(黒い点)内の点を検出して除外する必要があります。どのように私はそれを検出することができます!

編集:各シリンダーの境界ボックスがあります。

+0

バウンディングボックスまたはシリンダ自体をテストしますか? – ja72

答えて

0

円柱の端に座標系を配置します(たとえば、x軸に沿って配置します)。 点はあなたがポイント(x_A,y_A,z_A)の座標を変換する必要がある上に使用するために、次の

if(y^2+z^2 <= R^2 && x>=0 && x<=L) 
{ 
    // point (x,y,z) is inside cylinder 
} 

を行い、(長さL 及び半径R有する)シリンダ内であるかどうかをテストしますシリンダーのローカル座標(x,y,z)。シリンダーが3Dでどのように定義されているかについての詳細情報を提供する必要があります。私はあなたが3Dプログラミングをしていること、3D回転に精通していて基本的な幾何学を知っていることを期待しています。


代替アプローチは、シリンダ軸に最も近いポイントを削除することです。ポイントとラインの距離を取得する方法については、WolframまたはWikipediaを参照してください。

+0

ありがとうございます! – user3705425

+0

形状はユニティ3Dのオブジェクトです!はい、回転があります。 – user3705425

関連する問題