![]() |
Kennt sich jemand mit SPLines aus?
Hi,
und zwar suche ich die richtigen Formeln für verschiedene SPLines arten und zwar genau die die auch in AutoCAD verwendet werden. Das wären die 4 folgenden: Periodic spline, Rational spline, Planar spline, Linear spline. Irgendwie war meine Suche nach den Formeln bisher erfolglos. Ich habe nur den folgenden DelphiCode gefunden:
Delphi-Quellcode:
Der Code funktioniert zwar, aber ich kann diese Spline art keine von den oben genannten 4 arten zuordnen.
procedure DrawCubicCurve(Canvas: TCanvas; const Points: array of TPoint; Steps: cardinal);
function Interpolate(const p1, p2, p3, p4: TPoint; t: single): TPoint; function cubic(v1, v2, v3, v4, t: single): single; begin result:=v2+t*((-v1+v3)+t*((2*v1-2*v2+v3-v4)+t*(-v1+v2 - v3 + v4))); end; begin Result.x:=round(cubic(p1.x, p2.x, p3.x, p4.x, t)); Result.y:=round(cubic(p1.y, p2.y, p3.y, p4.y, t)); end; var i, s: integer; p, p1, p2, p3, p4: TPoint; begin if Length(Points) < 2 then exit; Canvas.MoveTo(Points[0].x, Points[0].y); p2:= Points[0]; p3:= Points[0]; p4:= Points[1]; for i:= 0 to High(Points)-1 do begin p1:= p2; p2:= p3; p3:= p4; if i+2 < Length(Points) then p4:= Points[i+2]; for s:= 1 to Steps do begin p:= Interpolate(p1, p2, p3, p4, s / Steps); Canvas.LineTo(p.x, p.y); end; end; end; Wäre für jede hilfe dankbar. mfg |
Re: Kennt sich jemand mit SPLines aus?
Hi,
Splines sind mathemathische Formeln zur Interpolation von Polynom-Funktionen. Such einfach mal im Internet nach Spline (oder auch Splinefunktion) und Definition und Interpolation, dann wirst du schon ein paar sachen finden. Und das nachprogrammieren ist dann sicherlich keine große Sache. Gruß Ken |
Re: Kennt sich jemand mit SPLines aus?
![]() Das Problem der Zuordnung der Verfahren zu den richtigen Bezeichnung ist garnicht so eeinfach, da sehr viele Algos vorhanden sind, und teilweise auch ein und der selbe Algo, oder mit minimal unterschiedliche Algos unter völlig anderen Namen "firmieren". Bekannt sind da noch B-Splines, Heremite-Splines, Beziér-Kurven etc.pp. und alle machen's etwas anders. Die von die genannten kenne ich z.B. (bis auf linear) nicht, was aber nicht heisst, das es nicht vielleicht doch einer der obigen ist, nur halt unter anderem Namen :? Da wäre eine intensive Google-Suche wahrscheinlich am ertragsreichsten... gruss, dizzy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz