プロが教える店舗&オフィスのセキュリティ対策術

3点がある空間上に与えられているとします。
その三点で構成される三角形の内部にある点が入るのか、入らないのか
を判定することをしたいのですが、どのようにしたらいいですか?

A 回答 (6件)

幾分題意が定まってないので・・・



1)「ある点」は三角形を含む平面上にあることは前提ですか?
2)1がNOの場合、「ある点」が平面上にない場合は、即「入らない」と判定するのですか?
3)1,2ともNOの場合、「ある点」から平面におろした垂線の足が三角形に入っていれば「入る」と判定するのですか?
・・・1,2,3ともNOの場合、「三角形の内部」を定義してください。

ところで、平面上に三角形と「ある点」があって、「ある点」が三角形の内部にあるか否かを、ベクトルを使って判定することはできますか?(これは高校の教科書レベルです。)

この回答への補足

「ある点」は平面上にあることは前提ではないです。
2)の場合は即「入らない」と判定します。
3)の場合を内部と判定したいです。

補足日時:2005/11/29 00:32
    • good
    • 0

ベクトルを用いるのが簡明だと思います。


ある空間上の3点をおのおのA,B,Cとおく。
また、A,B,Cが三角形をなすことから、A,B,Cの
3点は同一直線上に存在することはなく、また、どの1点も重なることはないとする。
このとき、三角形ABCの内部に存在する点をPとおく。
ベクトルAP=s ベクトルAB + t ベクトルAC (1)とおくと
s>0 (2)
t>0 (3)
s+t<1 (4)
(2)かつ(3)かつ(4)が(1)を満たすPの存在条件である。
(三角形の周上の点は除いて考えています)

こんな感じでいいのではないでしょうか。
    • good
    • 1

>2)の場合は即「入らない」と判定します。


>3)の場合を内部と判定したいです。

この2つは矛盾していますが・・・(汗)

一般的に→AP = m * →AB + n * →AC + k * (→AB×→AC)と書けます。(第3項の×はベクトルの外積)

まずは、上式の(m,n,k)を求めましょう。(ただの3元1次連立方程式です。)

>2)の場合は即「入らない」と判定します。
であれば、k≠0であれば「入らない」としてください。

>3)の場合を内部と判定したいです。
であれば、上で求めた(m,n,k)に対してk=0としたものが、垂線の足の位置ベクトル(始点A)です。

あとはいずれの場合も、m,nに関して、三角形の内部であることを表す不等式に該当しているかを考えればよいと思います。(#1の「ところで、」以降の内容)
    • good
    • 0

よく考えてみると難しい問題なのかな?自分なりに考えてみると。


XY面の3角形の内部に任意の点をとる。かりにここを00とすると3角形を構成する斜線て簡単な数式になる。Y=2X+1みたいな。この線に平行な線は
Y=2X+1+Aと表現できますよね。

ある点がY=2X+1+Aの上にあるとして、Aが0なら斜線の線上。Aがプラスの数字になるなら斜線の外側、Aがマイナスの数字なら斜線の内側になる。同じようなことを他の2つの斜線にも考えて、3つの条件を満たさないと、3角形内側じゃないと言えるのでは?
    • good
    • 0

4ですが。

「ある空間」という言葉を見逃していた。
レベルの高い話みたいですね。
    • good
    • 1

もっとエレガントな判定方法があるのかもしれませんが、次の方法はどうでしょうか。



3点をA,B,Cとして、ある点をPとする。
S=三角形PAB+三角形PBC+三角形PCAとしたとき、
S=三角形ABCになるなら、Pは三角形ABCの内部の点である。

Pが三角形ABCの辺上にのることを許さないなら、PAB,PBC,PCAのいずれかの面積が0になる場合を除くことにする、と。

どんなもんでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!