求大侠分析一下该函数为何执行速度太慢非均匀B样条的生产函数,其中_Rank为曲线的次数,类型为Integer,且等
求大侠分析一下该函数为何执行速度太慢
'非均匀B样条的生产函数,其中_Rank为曲线的次数,类型为Integer,且等于3;
'Vertexs(x) , _CtrlPoints(y)都是控制点的数组,类型为PointF,其中x的值取_Rank,y的值取10;
’_Knots(k)是节点值的数组,类型为Single,其中k=10
- VB code
Private Function Birth(ByVal CurrentKnokIndex As Integer, ByVal u As single) As PointF Dim m, n As Integer 'GetVertex For n = 0 To _Rank Vertexs(n) = _CtrlPoints(CurrentKnokIndex - _Rank + n) Next Dim denom As Single ' 分母项 Dim factor As Single For m = 1 To _Rank For n = 0 To _Rank - m denom = _Knots(CurrentKnokIndex + 1 + n) - _Knots(CurrentKnokIndex + n + m - _Rank) If Math.Abs(denom) <= 0.00000001 Then factor = 0.0 Else factor = (u - _Knots(n + m + CurrentKnokIndex - _Rank)) / denom End If Vertexs(n).X = (1.0 - factor) * Vertexs(n).X + factor * Vertexs(n + 1).X Vertexs(n).Y = (1.0 - factor) * Vertexs(n).Y + factor * Vertexs(n + 1).Y Next Next Return Vertexs(0) End Function
开发环境为VS2010,本函数执行起来速度太慢,而用VS分析CPU时反而不慢了,表现还不错的。
请各位大侠给分析下,看什么原因,有无改进的方法。
再次谢谢各位!
[解决办法]
vs2010程序本来就慢
[解决办法]
测试一下编译后的速度。
[解决办法]
MSDN上说:
安装 Windows 自动化 API 3.0 时,visual Studio 2010 更快地运行
描述 Windows 自动化 API 3.0,从而提高了速度和性能的 Visual Studio 2010。
support.microsoft.com/kb/981741/zh
