示例#1
0
 /// <summary>
 /// Attempts to fill in as many missing variables in k as possible.
 /// </summary>
 public static Kine3 Solve(Kine3 k)
 {
     // What can we solve?
     if (!k.Time.HasValue)
     {
         // can we solve for time?
         int xCount = 0;
         if (k.InitXvelo.HasValue)
         {
             xCount++;
         }
         if (k.FinalXvelo.HasValue)
         {
             xCount++;
         }
         if (k.Xacc.HasValue)
         {
             xCount++;
         }
         if (k.Xdistance.HasValue)
         {
             xCount++;
         }
     }
     throw new NotImplementedException();
 }
示例#2
0
        public static Kine3 GetFinalVelo(Kine3 k)
        {
            // TODO: Does this make new float? or reuse existing instance of float?
            // is float? value type or reference type
            Kine3 withAnswers = k;

            if (!withAnswers.FinalXvelo.HasValue)
            {
                if (withAnswers.InitXvelo.HasValue && k.Xacc.HasValue && k.Xdistance.HasValue)
                {
                    withAnswers.FinalXvelo = GetFinalVelocity(k.InitXvelo.Value, k.Xacc.Value, k.Xdistance.Value);
                }
            }
            if (!k.FinalYvelo.HasValue)
            {
                if (k.InitYvelo.HasValue && k.Yacc.HasValue && k.Ydistance.HasValue)
                {
                    withAnswers.FinalYvelo = GetFinalVelocity(k.InitYvelo.Value, k.Yacc.Value, k.Ydistance.Value);
                }
            }
            if (!k.FinalZvelo.HasValue)
            {
                if (k.InitZvelo.HasValue && k.Zacc.HasValue && k.Zdistance.HasValue)
                {
                    withAnswers.FinalZvelo = GetFinalVelocity(k.InitZvelo.Value, k.Zacc.Value, k.Zdistance.Value);
                }
            }
            return(withAnswers);
        }