⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 findspan.m

📁 强大的nurbs的工具箱 nurbs曲线
💻 M
字号:
function s = findspan(n,p,u,U)                
% FINDSPAN  Find the span of a B-Spline knot vector at a parametric point
% -------------------------------------------------------------------------
% ADAPTATION of FINDSPAN from C
% -------------------------------------------------------------------------
%
% Calling Sequence:
% 
%   s = findspan(n,p,u,U)
% 
%  INPUT:
% 
%    n - number of control points - 1
%    p - spline degree
%    u - parametric point
%    U - knot sequence
% 
%  RETURN:
% 
%    s - knot span
% 
%  Algorithm A2.1 from 'The NURBS BOOK' pg68
                                                
                                                % int findspan(int n, int p, double u, double *U) {
                                                
                                                %   int low, high, mid;                                                
                                                %   // special case
if (u==U(n+2)), s=n; return,  end               %   if (u == U[n+1]) return(n);
                                                %
                                                %   // do binary search
low = p;                                        %   low = p;
high = n + 1;                                   %   high = n + 1;
mid = floor((low + high) / 2);                  %   mid = (low + high) / 2;
while (u < U(mid+1) || u >= U(mid+2))           %   while (u < U[mid] || u >= U[mid+1])  {
    if (u < U(mid+1))                           %     if (u < U[mid])
        high = mid;                             %       high = mid;
    else                                        %     else
        low = mid;                              %       low = mid;                  
    end 
    mid = floor((low + high) / 2);              %     mid = (low + high) / 2;
end                                             %   }
                                                %
s = mid;                                        %   return(mid);
                                                %   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -