Пример #1
0
        public static void Interpolation(Vector3_U pos1, Vector3_U pos2, double lineStep, ref List <Vector3_U> vecArray) //直线插值
        {
            double    dis       = lineStep;                                                                              //插值间距
            Vector3_U direction = new Vector3_U(pos2.x - pos1.x, pos2.y - pos1.y, pos2.z - pos1.z);

            direction.Normalize();
            //vecArray.Add(pos1);
            //Vector3 dif = new Vector3();
            int    i = 0;
            double dif;

            do
            {
                Vector3_U midPos = new Vector3_U(pos1.x + dis * i * direction.x, pos1.y + i * dis * direction.y, pos1.z + i * dis * direction.z);
                vecArray.Add(midPos);
                dif = Vector3_U.Distance(midPos, pos2);
                i++;
            } while (dif > dis);
            vecArray.Add(pos2);
        }