예제 #1
0
        public Point method_3(Plane plane1, Plane plane2)
        {
            double num  = this.vector3d_2.Y * plane1.vector3d_2.Z - this.vector3d_2.Z * plane1.vector3d_2.Y;
            double num2 = this.vector3d_2.Z * plane1.vector3d_2.X - this.vector3d_2.X * plane1.vector3d_2.Z;
            double num3 = this.vector3d_2.X * plane1.vector3d_2.Y - this.vector3d_2.Y * plane1.vector3d_2.X;
            double num4 = plane1.vector3d_2.Y * plane2.vector3d_2.Z - plane1.vector3d_2.Z * plane2.vector3d_2.Y;
            double num5 = plane1.vector3d_2.Z * plane2.vector3d_2.X - plane1.vector3d_2.X * plane2.vector3d_2.Z;
            double num6 = plane1.vector3d_2.X * plane2.vector3d_2.Y - plane1.vector3d_2.Y * plane2.vector3d_2.X;
            double num7 = plane2.vector3d_2.Y * this.vector3d_2.Z - plane2.vector3d_2.Z * this.vector3d_2.Y;
            double num8 = plane2.vector3d_2.Z * this.vector3d_2.X - plane2.vector3d_2.X * this.vector3d_2.Z;
            double num9 = plane2.vector3d_2.X * this.vector3d_2.Y - plane2.vector3d_2.Y * this.vector3d_2.X;

            if (Vector3d.smethod_1(this.vector3d_2, new Vector3d(num4, num5, num6)))
            {
                return(null);
            }
            double num10 = this.vector3d_2.X * num4 + this.vector3d_2.Y * num5 + this.vector3d_2.Z * num6;

            if (Math.Abs(num10) < 4.94065645841247E-324)
            {
                return(null);
            }
            double num11 = 1.0 / num10;
            double num12 = this.d * num11;
            double num13 = plane1.d * num11;
            double num14 = plane2.d * num11;
            double x     = num12 * num4 + num13 * num7 + num14 * num;
            double y     = num12 * num5 + num13 * num8 + num14 * num2;
            double z     = num12 * num6 + num13 * num9 + num14 * num3;

            return(new Point(x, y, z));
        }
예제 #2
0
        public bool IsOrthogonalTo(Vector3d a)
        {
            double num = a.x * a.x + a.y * a.y + a.z * a.z;

            if (num < 4.94065645841247E-324)
            {
                return(false);
            }
            double num2 = this.x * this.x + this.y * this.y + this.z * this.z;

            return(num2 >= 4.94065645841247E-324 && Vector3d.smethod_1(this, a));
        }