[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:00664] Re: NormalTest.java
■■ 免疫滋養植物性醗酵食品オリーゼ ■■■■■■■■■■■■■■■■■■
======== 糖尿・肝臓・腎臓・高血圧・便秘でお悩みの方!! 朗報!!
初めてご応募の方全員にオリーゼ1箱(60包、3000円)を無料進呈
====== 創業昭和19年 オリーゼ本舗 http://www.matsuronet.ne.jp/ori-ze/
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
>>とにかく、Vector3f には normalize() というメソッドがあるので、
>>それを使ったほうがいいかもしれないです。
>
>おお、ご指摘ありがとうございます。
>考えてみればその通りです。早速直しておきます。(^^;;;)
private Vector3f calcFaceNormal(Point3d[] vertices) {
double ax = vertices[2].x - vertices[1].x;
double ay = vertices[2].y - vertices[1].y;
double az = vertices[2].z - vertices[1].z;
double bx = vertices[0].x - vertices[1].x;
double by = vertices[0].y - vertices[1].y;
double bz = vertices[0].z - vertices[1].z;
double nx = ay * bz - az * by;
double ny = az * bx - ax * bz;
double nz = ax * by - ay * bx;
Vector3f normal = new Vector3f( (float)nx,
(float)ny,
(float)nz );
nommal.normalize();
//DEBUG
System.out.println("nx=" + normal.x + ", ny=" + normal.y + ", nz=" + normal.z);
return normal;
}
いちおうこのように書きなおしました。
--
えんどう やすゆき <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/ (Java互助会ホームページ)