• 締切済み

多角形の法線ベクトルの求め方

3次元空間内で自己交差、曲率のない平面の法線ベクトルの求め方を教えてください。 平面は、(x0,y0,z0), (x1,y1,z1), ... (xn,yn,zn) という頂点配列で与えられています。 凸多角形ならば、一直線上にない任意の連続した3点の外積を取れば求まることは 簡単に分かるのですが、凹多角形の場合に、この方法を採用すると、逆向きの法線が 求まってしまう可能性があるという点で困っています。 凹凸の任意多角形平面の法線ベルトルを求めるアルゴリズムを探しています。 よろしくお願いいたします。

みんなの回答

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.2

面積ベクトルを求めちゃえばいいので、 P_k = (xk,yk,zk) に対して Σ[k=1…(n-1)] (→P_0P_k)×(→P_0P_{k+1}) コンピュータグラフィクスで使うのなら、 多角形の面積ベクトルは、ライブラリにある のではないでしょうか?

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

3次元上の平面の裏表って決まっているわけじゃないと思うのですが。 「逆向きの法線」とは、なにに対して逆向きなんでしょうか?

ggable
質問者

補足

3D空間での面の向きに関しては、例えば、コンピュータグラフィックス関連のサイトや書籍等をご参照ください。 2次元平面からの拡張を考えて、隣辺同士の外積ベクトルを全て求めて、そのベクトル平均が面の向きになると直感的には思えるのですが、正しいかどうかの確信が持てません。 ご存知の方、よろしくお願いいたします。

関連するQ&A

  • 接平面と法線ベクトルについて教えて下さい

    楕円体、 x^2/9 + y^2/4 + z^2/12 = 1 の点(2, 1, √33/3)での接平面の方程式と法線ベクトルの求め方を教えていただきたいです。 よろしくお願いいたします。

  • 楕円面上の法線ベクトル

    楕円面 F(x,y,z) = x^2/a^2 + y^2/b^2 + z^2/c^2 -1 = 0 (a)楕円面上の点 P0 = (x0,y0,z0) における法線方向を指すベクトルを求めよ。 (b)P0における法線上の任意の点を P = (x,y,z) とすると、線分P0Pは(a)で求めたベクトルと平行である。このことを用いて、楕円面のP0を通る法線の方程式を求めよ。 (c)P0における接平面上の任意の点を P = (x,y,z) とすると、線分P0Pは(a)で求めたベクトルと垂直である。このことを用いて、楕円面のP0を通る法接平面の方程式を求めよ。 自分なりに考えた解答があっているかを教えていただきたいです----- (a)原点 O = (0,0,0) から楕円面上の点 P0 = (x0,y0,z0) に伸ばしたベクトルは、当然 点P0の接平面 に垂直なので 法線ベクトル →P0 = (x0,y0,z0) (b) →P0P = (x,y,z) - (x0,y0,z0) = (x-x0,y-y0,z-z0) これに平行なので (x-x0)/x0 = (y-y0)/y0 = (z-z0)/z0 (c) →P0P = (x,y,z) - (x0,y0,z0) = (x-x0,y-y0,z-z0) これに垂直なので内積がゼロ、よって x0(x-x0)+y0(y-y0)+z0(z-z0) = 0 ----- 特に(b)はあっていますか? よろしくおねがいします。

  • 代数学の問題を教えて下さい。

    この問題が分かりません。お願いいたします。 行列A= (0 2 -1) (1 1 -1) (-2 2 1) とする。 X=1,Y0=0,Z0=0である。n>=0で漸化式 X(n+1)=2Yn-Zn Y(n+1)=Xn+Yn-Zn Z(n+1)=-2Xn+2Yn+Zn を満たす数列{Xn}{Yn}{Zn}を考える(n>=0)。このとき 一般項Xn,Yn.Znを求めなさい という問題です。どうかお願いいたします。

  • 微分積分で接平面、法線ベクトル、法線を求める問題

    微分積分の課題で困ってます!!!!! Z=√(1-x^2-y^2)のグラフ上の点(0,0,1)における 1、法線ベクトルおよび、法線の式を求めよ。 2、接平面の式を求めよ。 以上の回答と解説どなたかお分かりになりますでしょうか???

  • mathematicaでリストの格納

    mathematicaでTable関数で作成したリスト {{x1, y1, z1, f(x1,y1,z1)}, {x2, y2, z2, f(x2,y2,z2)}, ... , {xn, yn, zn, f(xn,yn,zn)}} 中のx1~xnまでの各成分とy1~ynまで(、z1~znまで、 f(x1,y1,z1)~f(xn, yn, zn)までの各成分)をそれぞれ配列に格納するにはどうすればいいのでしょうか?(C言語のようにループ文で配列に格納することはできないのでしょうか?) もしくは、行列中で列の成分を取り出すことはできますか? どなたか解法を示していただければ幸いです。

  • 空間図形の法線ベクトル?

    f(x,y,z)で表せる、空間図形上の任意の点での 法線ベクトルを求めたいんですが・・・。 多分fの偏微分で求まると思うのですが、 いまいち自信がありません。 どなたかご存知の方いらしゃいませんか? 宜しくお願いいたします。

  • 2直線を含む面の方程式

    2つの直線 G: x-1 = y/(-1) = (z+2)/7 L: (x+2)/2 = (y+1)/0 = (z+1)/3 の両方を含む面の方程式を求めたいのですが、 2つの直線の方向ベクトルから外積を出して、それを法線にした場合と、 2つの直線の交点を求めて、交点と直線が通る点の3点から外積を出して法泉とした場合で 法線の方向が異なってしまいます(逆向きではなくx:y:z比が異なる)。 考え方そのものが間違ってるのでしょうか?

  • 法線を使って、ある地表の一点の高さを調べるには

    法線を使って、ある地表の一点の高さを調べるには (X,Y,Z)座標の中のある一点(X,Z)の地表の高さ(Y) を知るのに、その一点のまわりの三点(A、B、C)の座標値(X,Y,Z) がわかっていれば、法線を使って知りたい点の高さがわかると聞いたのですが (A,B,C)でできる平面の法線を求めて 点(A)と調べたい点(T)を結んだ線(AT)を作ると、 線(AT)と法線は直行してるので 線(AT)と法線の内積=0 という所までは、わかったのですが、 その内積を表す式と 法線の各成分、点(A)の各成分、調べたい点T(X,Z)成分 はすでにわかっているので、調べたい点T(Y)成分を 内積の式から抽出でき、 式を展開できるということの、 その式がどうしてもわかりません。 その式がわかれば、ある地点(X,Z)の(Y)成分がわかるらしいのですが、 どなたかご存知の方がおりましたら よろしくお願い致します。

  • 何故偏微分が法線の成分に

     関数f(x,y,z)=0という曲面があって曲面上のある点Pの接平面を求めるとき  Fx*X'+Fy*Y'+Fz*Z=0という式が出ます。 この式の意味するところはFx Fy FzがP点での法線ベクトルのx y z成分になるということらしいのですがよく理解出来ません。何故偏微分が法線ベクトルの成分になるのでしょうか?教えてください!

  • 単位法線ベクトルの問題なんですが。。。

    曲面 4x^2y+z^3 = 4 上の点P(1, -1, 2)における単位法線ベクトルnを求めよ. という問題です. 他の質問を見てf = (x,y,z) = 4x^2y+z^3-4 とするのはわかったのですがgradfがわからないです。。。