const giCount = 15; giDetail = 10; ... procedure TForm1.BSpline_Clamped; var j, i, iIndex : integer; iNumSegmentsCount : integer; iT, i1_T, iB0, iB1, iB2, iB3 : double; iNewX, iNewY : double; pSerieLine : TLineSeries; iValue : extended; begin pSerieLine := TLineSeries( Chart1.Series[1] ); pSerieLine.Clear; { draw count of cubic curves } for iIndex := -2 to px.Count - 2 do begin { every curve generate from I parts } for i := 0 to giDetail - 1 do begin iT := i / (giDetail-1); i1_T := 1 - iT; iB0 := ( i1_T * i1_T * i1_T ) / 6; iB1 := ( ( 3 * iT * iT * iT ) - ( 6 * iT * iT ) + 4 ) / 6; iB2 := ( ( -3 * iT * iT * iT ) + ( 3 * iT * iT ) + ( 3 * iT ) + 1 ) / 6; iB3 := ( iT * iT * iT ) / 6; iNewX := iB0 * GetValueX( iIndex ) + iB1 * GetValueX( iIndex + 1 ) + iB2 * GetValueX( iIndex + 2 ) + iB3 * GetValueX( iIndex + 3 ) ; iNewY := iB0 * GetValueY( iIndex ) + iB1 * GetValueY( iIndex + 1 ) + iB2 * GetValueY( iIndex + 2 ) + iB3 * GetValueY( iIndex + 3 ); pSerieLine.AddXY( iNewX, iNewY ); end; end; end;
Microsoft AX 2012, X++, C#, SQL server, SSRS, Java, JavaFX, Oracle, PL/SQL, Delphi - codes examples, step-by-step tutorials, experiences.
Friday, March 2, 2018
DELPHI - How to make cubic B-Spline interpolation + Cox-De-Boora algorithmus
Subscribe to:
Post Comments (Atom)
Looks very good, but does not compile. What units are you using?
ReplyDelete