3
A
答えて
2
にキューブ上の最も近い点を見つけるのですか3D空間でランダム点にQを持っています
double Dot(Vector3 a, Vector3 b) => a.X * b.X + a.Y*b.Y + a.Z*b.Z;
とLengthSquared
のように定義されるように定義された内積とdouble LengthSquared()=> Dot(this,this);
超矩形の各独立軸に点を投影して、投影のスカラーパラメータ を見つけます。次に、スカラーパラメータを顔の範囲の に飽和させます。次に、コンポーネントを合計して回答を得ます。
public Vector3 ClosestPointTo
(Vector3 q, Vector3 origin, Vector3 v100, Vector3 v010, Vector3 v001)
{
var px = v100;
var py = v010;
var pz = v001;
var vx = (px - origin);
var vy = (py - origin);
var vz = (pz - origin);
var tx = Vector3.Dot(q - origin, vx)/vx.LengthSquared();
var ty = Vector3.Dot(q - origin, vy)/vy.LengthSquared();
var tz = Vector3.Dot(q - origin, vz)/vz.LengthSquared();
tx = tx < 0 ? 0 : tx > 1 ? 1 : tx;
ty = ty < 0 ? 0 : ty > 1 ? 1 : ty;
tz = tz < 0 ? 0 : tz > 1 ? 1 : tz;
var p = tx * vx + ty * vy + tz * vz + origin;
return p;
}
関連する問題
- 1. 三角形の最小許容三角形を見つける
- 2. 三角形の角を見つける
- 3. 角の最も近い点を見つける
- 4. バイナリ配列で直角三角形を見つける
- 5. 三角形内の任意の点を見つける最速の方法2D
- 6. 三角形グリッドの一番近い点
- 7. 直角三角形と1頂点の2つの辺から未知の頂点を見つける
- 8. 三角形の頂点を見つける
- 9. 三角形、正方形、円の下の整数点の数を見つける
- 10. 三角形の対角を見つけるか?
- 11. GKObstacleGraph最も近い有効な点を見つける方法?
- 12. 交差点の重心パラメータを与えられた点に最も近い3D三角形の頂点
- 13. ループで直角三角形を描く
- 14. 直角三角形の決定
- 15. 3Dオブジェクトの外形に三角形を見つける
- 16. 私のコードの出力は、私が直角三角形 ためperametersを見つける三角形のために、このコードをやっている
- 17. 他の点に最も近い点を見つける
- 18. アルゴリズム設計 - 頂点を共有する三角形のセットを見つけるより良い方法
- 19. 三角形に影をつけるsvg
- 20. 多角形の点で指定点に最も近い点を取得する方法は?ここで
- 21. 三角の領域を見つける
- 22. 正三角形の3番目の座標を見つける方法は?
- 23. 穴を持つ最も速い三角形分割アルゴリズム?
- 24. 点集合から四角形の頂点を見つける
- 25. "二等辺三角形の三角形"の頂点を決定する
- 26. 最後の点を除いて最も近い点を見つけるLibGDX Java
- 27. Delaunay三角測量のすべての三角形から1つの頂点のみをマークする方法
- 28. 最も近い点のペアのユニークなセットを見つける方法は?
- 29. 球面上の最も近い点のペアを見つける
- 30. 3Dメッシュで接続された三角形を見つける方法