as@progress.COM (Amitabh Shukla) (10/23/90)
Given a free form curve ( an array of points ), how do we calculate the two intermediate control points? I was going through the bible (Foley Van Dam) and realized that it tells you how to draw curve when you have the 4 control points but it is not easy to understand how to go the otherway. I would appreciate if someone can guide me towards a solution. Amitabh Shukla email address: as@pscdev.progress.COM
joerg@cat.uucp (Markus Schichtel) (10/27/90)
Amitabh Shukla (as@progress.COM) schrieb am 22.10.: > Given a free form curve ( an array of points ), how do we calculate the two > intermediate control points? I was going through the bible (Foley Van Dam) > and realized that it tells you how to draw curve when you have the 4 > control points but it is not easy to understand how to go the otherway. > > I would appreciate if someone can guide me towards a solution. > > Amitabh Shukla > > email address: as@pscdev.progress.COM Frankly your question is not that precise,But since you are talking of four control points I assume you use a cubic Bezier curve,in which case the theory tells you that the first two resp. last two controls determine the tangent to the the curve at the endpoints.In other words if you prescribe the tangents at the endpoints then you have also the two intermediate control points.This property follows from the Casteljau Algorithm which is commonly used to calculate points on the curve.Presumably you want to approximate an given array of points.In that case it is not at all necessary to compute the missing controls.You just make them the parameters in your approximation process. Standard method here is nearest fit in some norm by Gauss.However it is somewhat tricky to find the appropriate parameter values in (0,1) for the intermediate controls.For more info refer to Hoschek/Lasser : Grundlagen der geometrischen Datenverarbeitung.Those are the guys who wrote papers on the parameter correction issue.Hoschek is my Thesis advisor right now at TH Darmstadt Germany.Feel free to contact for more questions --- Markus Schichtel (joerg@cat.de) C.A.T. Kommunikations-System, Frankfurt