ある領域内(2次元空間、例えば、四角、多角形)に点が含まれているか判断するAPI関数がありますが、3次元空間内に点が含まれているかどうかを判断する関数が存在するのでしょうか。教えてください。
または、3次元空間で、線が面を横切っているかどうか判断する関数があれば、教えてください。
ううっ、わたしの理解の域を越えている…。
たしか、VB標準関数にはなかったと思います。
3Dといえば、DirectXにもありそうかも。
…でも、2次元空間での計算ができるなら、
それを応用したりして、3次元関数も可能じゃないんでしょうか?
>…でも、2次元空間での計算ができるなら、
>それを応用したりして、3次元関数も可能じゃないんでしょうか?
非常に難しいですね。
2次元空間での関数はおそらく、点が領域内かどうかの判断は二つの線が交わっているかどうかの判断をすることによるものだと思いますが、三次元空間では面と線が交わっているかどうかを判断することで、領域内に点が存在しているのか?判別できるだろうと思っています。そういう意味で、面と線が交わっているかどうかを判断する関数があればいいなと思っていますが。
自分で作る!!!
2次元で収縮率を求めて擬似3D計算をするという手も…
(ごめんなさいわからなくなってきました)
>3次元空間内
閉曲面の内側ということでしょうか?
確実に閉曲面内とわかっている点と求める点を結ぶ線分の式と
閉曲面の式を連立して解きます。
解の個数が偶数なら内側です。
ただし、重解は2個と数え、閉曲面が連続であるとします。
>3次元空間で、線が面を横切っているかどうか判断
連立して解があれば横切ってます。
Sayさんが言っていますけど、
そういえば確か…。3次元空間内に、点があるかどうかを調べる公式というのを、
どこかで聞いた記憶があったような…。
2次元での計算を、高さぶんやっていってもいいでしょうけど、
多分遅すぎでしょうね^^;
ツイート | ![]() |