Talk:De Casteljau's algorithm
![]() | Computer graphics Start‑class | |||||||||
|
![]() | Mathematics Start‑class Low‑priority | |||||||||
|
Untitled
I would like to see this illustrated: any takers? --Phil | Talk 12:49, Sep 22, 2004 (UTC)
Illustration would be really nice. Perhaps Κσυπ Cyp would do one if asked nicely.MathMartin 13:40, 22 Sep 2004 (UTC)
Just added the illustration and few words disscussing the geomtric interpretation of what is going on. The image was prepared in Asymptote ([1]), I include herewith the sources in case someone wishes to modifie the image one day (don't worry about licensing, I release it under public domain). Pkoprowski 17:36, 7 October 2006 (UTC)
Is there a reason the images from the Bezier_curves page aren't shown here? RaydenUni 20:33, 18 December 2006 (UTC)
Image sources
size(10cm,4cm);
real t = 0.33;
pair[][] P = {{(0,0), (0.25,1.5), (1,2), (1,0)},
{(0,0), (0.5,1), (1,2), (1,0)}, {(0,0), (0.5,1), (1,2), (1,0)}, {(0,0), (0.5,1), (1,2), (1,0)}};
path C[] = {nullpath, nullpath, nullpath, nullpath}; path g,ctr,d; g = P[0][0]..controls P[0][1] and P[0][2]..P[0][3]; d = scale(0.025)*unitcircle;
int i,j,k; C[0] = P[0][0]--P[0][1]--P[0][2]--P[0][3]; for(i = 1; i <= 3; ++i) {
for(j = 0; j <= 3-i; ++j) { P[i][j] = (1-t)*P[i-1][j] + t*P[i-1][j+1]; C[i] = C[i]--P[i][j]; }
}
for(k = 0; k < 3; ++k) { draw(shift((2*k,0)) * C[k]); for(i = 0; i < 4-k; ++i) { string L = format("$P_%d$",i); label(L, shift((2*k,0)) * P[k][i], i < (4-k)/2 ? W : E);
filldraw(shift((2*k,0)) * shift(P[k][i])*d); }
draw(shift((2*k,0)) * C[k+1], dashed); for(i = 0; i < 3-k; ++i)
draw(shift((2*k,0)) * shift(P[k+1][i])*d);
draw(shift((2*k,0)) * g); }
I'm confused. What is little b? --jivy 16:48, 29 October 2005 (UTC)
- Never mind. For anyone else who was wondering this, little b is the Bernstein basis polynomial. --jivy 03:58, 30 October 2005 (UTC)
Never mind little b, what about all the other variables? 129.11.146.164 (talk) 10:23, 12 November 2008 (UTC)
Would it be more clear to say that bi,n(t) is the Bernstein basis polynomial? I don't see what little b means just by itself.Ten-K (talk) 10:58, 3 March 2010 (UTC)
de or De
The article header says "The correct title of this article is de Casteljau's algorithm. The initial letter is capitalized due to technical restrictions." However, according to the style guides I have handy (NY Times and USGPO), it should be capitalized here (regardless of any technical restrictions). The NYT Manual of Style and Usage says that, while the "de" particle remains in lowercase when it appears in the interior of a sentence, it should be capitalized when it begins a sentence or a headline or a subhead. The USGPO Style Manual goes even farther, saying that "de" (also d', da, della, du, van, and von) should be capitalized unless preceded by a forename or title. So according to the latter, that first sentence should read "The correct title of this article is De Casteljau's algorithm." But then, it's not needed, is it? :-) The Wikipedia style guide http://en.wikipedia.org/wiki/Capitalization#Compound_names mentions this case only for the Dutch: Franky van der Elst, but Van der Elst, Franky in a list.--BillFlis 12:14, 2 May 2006 (UTC)
German article in english Wikipedia?
The article http://en.wikipedia.org/wiki/De_Casteljau%27s_algorithm is written in german. Is this a mistake, a stopgap until an english translation becomes available or something else? -- Roland Kaufmann Insert non-formatted text here
Haskell
I fail to see how using Haskell clarifies the algorithm. Should have been pseudocode or something with a transparent procedural syntax. Angry bee (talk) 20:30, 31 May 2010 (UTC)
I think that the example Haskell code implements the algorithm rather lucidly, though I was initially confused by its choice of variable names. -vk (talk) 03:15, 11 May 2013 (UTC)
- I totally agree. For the vast majority of people, a procedural implementation would be clearer, like the one found here. —Ben FrantzDale (talk) 13:31, 10 October 2014 (UTC)
- From someone who is familiar with programming in general but not Haskell, the current example is rather opaque. An example like linked above would be very helpful. --Miguelmurca (talk) 10:17, 29 January 2018 (UTC)
- Haskell does not clarify. It is, of course, of use to Haskell programmers, but not to anybody else. JDAWiseman (talk) 16:42, 20 January 2019 (UTC)
Numerical stability
The intro says that this algorithm is "slower for most architectures when compared with the direct approach, it is more numerically stable". I believe it, based on the fact that this algorithm is based entirely on linear interpolation between points, and so it should be well behaved and doesn't involve taking the difference of large powers of numbers, but this should be expanded upon. —Ben FrantzDale (talk) 13:33, 10 October 2014 (UTC)
Stopping condition
Recursive algorithms need a stopping condition. Please could the stopping condition be explained more overtly? JDAWiseman (talk) 16:42, 20 January 2019 (UTC)