Heres an initial port of the PSpline.pas to C, (single C file, prints 2d curve to stdout).
https://gitlab.com/ideasman42/fred-curve/blob/HEAD/pspline.c This is the n-dimensional variant, but for the test it only prints 2d values. My main concern with this method of calculating splines is it relies on integer values and bit-shifting. For Blender we would want it to calculate floating point values, I didnt investigate yet how well this method could be used with floats, would be interesting to check on next. On Mon, Sep 29, 2014 at 3:45 AM, Fred <[email protected]> wrote: > Hi Campbell Barton, > > The amount of interpolation dots is 2^i, at the start of the demo i = > 4 (16 dots) > if you change i = 7 (the limit in the demo) than there are 128 > interpolation dots. > > if I had set the limit in the demo to 10 then 1024 interpolation dots > was possible. > > If the spline is used in a 3 dimensional space, > to compute an interpolated dot position takes: dim * 10 clock cycles = > 30 clock cycles. > I hope that it is fast enough. > > If you like to have a curve to the last plotted dot you have to put two > dots on each other at the end. > You will see that it is symmetrical again. > > Please change the number to 7 in the demo and you see a curved line in > stead of dots. > > Much more is possible with this spline because the first, second and > third derivative (parameterized ) of the curve > is available in real time. > > I think that much more can be invented with this spline technique. > I think that with some research tangent handles can be constructed as > well (if you like them?). > What I did in the demo was the most simple way of using it. > > The essence is: a 3th degree curve in two (x,y) or more directions is > differentiated three times, and then again integrated 3 times. > With floating point this is impossible , because it is not exact, the > curve runs away. > But with integer computing it is exact and the spline exact a 3th degree > curve. > > It can also be used in ten or more directions, but more then 3 > dimensions (x,y,z) is not practical. > > Fred. > -------------------------------------- > Fred schreef op 28-9-2014 om 18:30: >> That is in the demo the case, because I programmed that the first plot >> point is actually two points. >> the spline uses 4 points p0, p1, p2, p3 and the interpolation is >> between p1 and p2. >> >> Campbell Barton schreef op 28-9-2014 om 17:42: >>> Checked the test application, and not sure if this is intended but a >>> simple triangle has uneven distribution. >>> >>> see: http://www.graphicall.org/ftp/ideasman42/fred_curve.png >>> >>> On Mon, Sep 29, 2014 at 1:32 AM, Dan McGrath <[email protected]> >>> wrote: >>>> Cool, got them. Will take a look later. o/ >>>> >>>> Dan >>>> >>>> On Sun, Sep 28, 2014 at 11:28 AM, Fred <[email protected]> wrote: >>>> >>>>> Ok, It is uploaded to the directory incoming >>>>> >>>>> Dan schreef op 28-9-2014 om 17:15: >>>>>> You could always upload it to our anonymous ftp via download.blender.org >>>>>> (or ftp.blender.org) and put it into the incoming directory (use passive >>>>>> mode). From there was can fetch the files via >>>>>> http://download.blender.org/ftp/incoming/ >>>>>> >>>>>> Dan >>>>>> >>>>>> On Sun, Sep 28, 2014 at 11:05 AM, Fred <[email protected]> wrote: >>>>>> >>>>>>> Campbell Barton >>>>>>> >>>>>>> I have tried to send it but it is rejected. So send me an addres for >>>>>>> upload. >>>>>>> >>>>>>> fred >>>>>>> >>>>>>> >>>>>>> Campbell Barton schreef op 28-9-2014 om 16:51: >>>>>>>> Could the project files be posted to a public URL?, Id like to be able >>>>>>>> to look into this. but probably wont have time over the coming weeks. >>>>>>>> >>>>>>>> The main source file compiles for me with minor edits on >>>>>>>> Linux/FreePascal, but the demo relies on `Window` unit, which I assume >>>>>>>> is provided by delphi/windows. >>>>>>>> >>>>>>>> On Mon, Sep 29, 2014 at 12:36 AM, Dan McGrath <[email protected] >>>>>>> wrote: >>>>>>>>> Hey, >>>>>>>>> >>>>>>>>> Just save out the delphi project and zip it up and email it to me >>>>> direct >>>>>>>>> via email I guess (the mailing list wouldn't allow such a large >>>>>>>>> attachement). I was attempting to compile it on linux, so the compiled >>>>>>>>> dll's wouldn't be of much use to me unfortunately. >>>>>>>>> >>>>>>>>> Thanks! >>>>>>>>> >>>>>>>>> >>>>>>>>> Dan >>>>>>>>> >>>>>>>>> On Sun, Sep 28, 2014 at 10:06 AM, Fred <[email protected]> wrote: >>>>>>>>> >>>>>>>>>> Hi Dan, >>>>>>>>>> >>>>>>>>>> Of course I can send you the project. >>>>>>>>>> I have made two versions: >>>>>>>>>> 1) The spline is embedded in de demo: >>>>>>>>>> 2) The spline is an external .dll, de demo calls PSpline.dll >>>>>>>>>> >>>>>>>>>> Which one do you prefer? >>>>>>>>>> >>>>>>>>>> Fred. >>>>>>>>>> ---------------- >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Dan McGrath schreef op 28-9-2014 om 15:42: >>>>>>>>>>> So is/was Turbo Pascal (limited in features; eg: objects but no >>>>>>> classes) >>>>>>>>>>> and FreePascal+Lazarus (supports almost everything Delphi does >>>>> still? >>>>>>>>>>> http://wiki.freepascal.org/Lazarus_For_Delphi_Users). >>>>>>>>>>> >>>>>>>>>>> Anyway, just thought it was neat to see code in pascal (an elegant >>>>>>>>>>> language, imho). Curious though, why not just give the whole delphi >>>>>>>>>> project >>>>>>>>>>> and resource files so your forms can be built etc.? The code seems >>>>> to >>>>>>>>>>> compile with some modifications here, but without the {$R *.DFM} >>>>>>> (*.lfm >>>>>>>>>> in >>>>>>>>>>> fp), one would have to manually rebuild the form :( >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Sun, Sep 28, 2014 at 8:55 AM, Fred <[email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> It's true, but Delphi is object oriented. >>>>>>>>>>>> >>>>>>>>>>>> Dan McGrath schreef op 28-9-2014 om 14:53: >>>>>>>>>>>>> Standard Pascal, Turbo Pascal, Freepascal, Delphi; same language, >>>>>>>>>>>> different >>>>>>>>>>>>> dialect :) >>>>>>>>>>>>> >>>>>>>>>>>>> On Sun, Sep 28, 2014 at 8:43 AM, Fred <[email protected]> >>>>> wrote: >>>>>>>>>>>>>> Actually it is Delphi >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Dan McGrath schreef op 28-9-2014 om 14:35: >>>>>>>>>>>>>>> Pascal, with inline assembler to boot! \o/ :) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Sun, Sep 28, 2014 at 6:46 AM, Ton Roosendaal < >>>>> [email protected]> >>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Fred told me he's not interested in getting involved, or >>>>> setting >>>>>>> up >>>>>>>>>> a >>>>>>>>>>>>>>>> project for his work. >>>>>>>>>>>>>>>> He's retired now and just thought we might be interested in a >>>>>>>>>> research >>>>>>>>>>>>>>>> topic he did. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I've copied files he sent to me here; >>>>>>>>>>>>>>>> http://download.blender.org/ftp/ton/ >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> It's a Dutch pdf and two pascal files. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -Ton- >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -------------------------------------------------------- >>>>>>>>>>>>>>>> Ton Roosendaal - [email protected] - www.blender.org >>>>>>>>>>>>>>>> Chairman Blender Foundation - Producer Blender Institute >>>>>>>>>>>>>>>> Entrepotdok 57A - 1018AD Amsterdam - The Netherlands >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On 28 Sep, 2014, at 9:28, Aditia A. Pratama wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> HI Fred, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Can you record a screencast/video demo to show how it works? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Regards, >>>>>>>>>>>>>>>>> On Sep 28, 2014 2:14 PM, "Fred" <[email protected]> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I forgot to say, I have a two dimensional demo but it is >>>>>>> working >>>>>>>>>> on >>>>>>>>>>>> a >>>>>>>>>>>>>>>>>> windows computer. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Jacob Merrill schreef op 28-9-2014 om 02:07: >>>>>>>>>>>>>>>>>>> would this make it so you can record F-curves over time >>>>>>> better? >>>>>>>>>>>>>>>>>>> right now recording in the engine gets slower the longer it >>>>>>> runs, >>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>> Bf-committers mailing list >>>>>>>>>>>>>>>>>>> [email protected] >>>>>>>>>>>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>> Bf-committers mailing list >>>>>>>>>>>>>>>>>> [email protected] >>>>>>>>>>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>> Bf-committers mailing list >>>>>>>>>>>>>>>>> [email protected] >>>>>>>>>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers >>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>> Bf-committers mailing list >>>>>>>>>>>>>>>> [email protected] >>>>>>>>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>> Bf-committers mailing list >>>>>>>>>>>>>>> [email protected] >>>>>>>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers >>>>>>>>>>>>>>> >>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>> Bf-committers mailing list >>>>>>>>>>>>>> [email protected] >>>>>>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers >>>>>>>>>>>>>> >>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>> Bf-committers mailing list >>>>>>>>>>>>> [email protected] >>>>>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers >>>>>>>>>>>>> >>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>> Bf-committers mailing list >>>>>>>>>>>> [email protected] >>>>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers >>>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> Bf-committers mailing list >>>>>>>>>>> [email protected] >>>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers >>>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> Bf-committers mailing list >>>>>>>>>> [email protected] >>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers >>>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Bf-committers mailing list >>>>>>>>> [email protected] >>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers >>>>>>> _______________________________________________ >>>>>>> Bf-committers mailing list >>>>>>> [email protected] >>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers >>>>>>> >>>>>> _______________________________________________ >>>>>> Bf-committers mailing list >>>>>> [email protected] >>>>>> http://lists.blender.org/mailman/listinfo/bf-committers >>>>>> >>>>> _______________________________________________ >>>>> Bf-committers mailing list >>>>> [email protected] >>>>> http://lists.blender.org/mailman/listinfo/bf-committers >>>>> >>>> _______________________________________________ >>>> Bf-committers mailing list >>>> [email protected] >>>> http://lists.blender.org/mailman/listinfo/bf-committers >>> >> _______________________________________________ >> Bf-committers mailing list >> [email protected] >> http://lists.blender.org/mailman/listinfo/bf-committers >> > > _______________________________________________ > Bf-committers mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-committers -- - Campbell _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
