コード例 #1
0
        //public static CameraSpacePoint PointProjectionIntoPlane(CameraSpacePoint point, CameraSpacePoint planeNormal)
        //{
        //    float x = point.X;
        //    float y = point.Y;
        //    float z = point.Z;

        //    float a = planeNormal.X;
        //    float b = planeNormal.Y;
        //    float c = planeNormal.Z;

        //    float t = (a*)
        //}

        public static Planes GetPlanes(Dictionary <JointType, Joint> joints)
        {
            CameraSpacePoint spineBase = joints[JointType.SpineBase].Position;
            CameraSpacePoint spineMid  = joints[JointType.SpineMid].Position;

            CameraSpacePoint horizontalPlane = LinearAlgebra.Sub(spineMid, spineBase);
            CameraSpacePoint hipToHip        = LinearAlgebra.Sub(joints[JointType.HipLeft].Position, joints[JointType.HipRight].Position); // difference between both hips
            CameraSpacePoint sagittalPlane   = LinearAlgebra.CrossProduct(horizontalPlane, hipToHip);
            CameraSpacePoint frontalPlane    = LinearAlgebra.CrossProduct(horizontalPlane, sagittalPlane);


            Planes plane = new Planes(horizontalPlane, sagittalPlane, frontalPlane);

            return(new Planes(horizontalPlane, sagittalPlane, frontalPlane));;
        }