Code

2geomify pov-out extension
[inkscape.git] / src / display / bezier-utils-work.txt
1 min .5 * sum_i lensq(bez_pt(b, u[i]) - d[i])
3 lensq(d)=dot(d, d) = d.x * d.x + d.y * d.y
5 sum_i (f(i) + g(i)) = sum_i f(i) + sum_i g(i), so
6 we can separate into x,y parts.  Since they are the same, we write `z' in the below
7 to mean either x or y.
9 .5 * sum_i (bez_pt(b, u[i]) - d[i]).z^2
11 = .5 * sum_i (B0(u[i]) * b[0] +
12               B1(u[i]) * b[1] +
13               B2(u[i]) * b[2] +
14               B3(u[i]) * b[3]
15               - d[i]           ).z^2
17 = H.
19 Suppose that b[0,1,3] are fixed (with b[1] perhaps being calculated
20 from a prior call to existing generate_bezier).
22 d H / d b[2].z = sum_i B2(u[i]) * (bez_pt(b, u[i]) - d[i]).z
24 Solve for dH/db[2].z==0:
26 -sum_i B2(u[i]) B2(u[i]) * b[2].z = sum_i B2(u[i]) * (B0(u[i]) * b[0] +
27                                                       B1(u[i]) * b[1] +
28                                                       B3(u[i]) * b[3]
29                                                       - d[i]           ).z
30 b[2].z = ((sum_i B2(u[i]) * (B0(u[i]) * b[0] +
31                              B1(u[i]) * b[1] +
32                              B3(u[i]) * b[3]
33                              - d[i]           ).z)
34           / -sum_i (B2(u[i]))^2)