50 lpi * l = malloc(
sizeof (
lpi ) );
59 double x0 = d->
points[t->vids[0]].
x;
60 double y0 = d->
points[t->vids[0]].
y;
61 double z0 = d->
points[t->vids[0]].
z;
62 double x1 = d->
points[t->vids[1]].
x;
63 double y1 = d->
points[t->vids[1]].
y;
64 double z1 = d->
points[t->vids[1]].
z;
65 double x2 = d->
points[t->vids[2]].
x;
66 double y2 = d->
points[t->vids[2]].
y;
67 double z2 = d->
points[t->vids[2]].
z;
77 double y0212 = y02 / y12;
79 lw->w[0] = ( z02 - z12 * y0212 ) / ( x02 - x12 * y0212 );
80 lw->w[1] = ( z12 - lw->w[0] * x12 ) / y12;
81 lw->w[2] = ( z2 - lw->w[0] * x2 - lw->w[1] * y2 );
85 double x0212 = x02 / x12;
87 lw->w[1] = ( z02 - z12 * x0212 ) / ( y02 - y12 * x0212 );
88 lw->w[0] = ( z12 - lw->w[1] * y12 ) / x12;
89 lw->w[2] = ( z2 - lw->w[0] * x2 - lw->w[1] * y2 );
121 p->
z = p->
x * lw->w[0] + p->
y * lw->w[1] + lw->w[2];
144 fprintf( stderr,
"xytoi:\n" );
145 for ( i = 0; i < nout; ++i )
149 fprintf( stderr,
"(%.7g,%.7g) -> %d\n", p->
x, p->
y,
delaunay_xytoi( d, p, seed ) );
153 for ( i = 0; i < nout; ++i )
158 fprintf( stderr,
"output:\n" );
159 for ( i = 0; i < nout; ++i )
161 point* p = &pout[i];;
162 fprintf( stderr,
" %d:%15.7g %15.7g %15.7g\n", i, p->
x, p->
y, p->
z );
delaunay * delaunay_build(int np, point points[], int ns, int segments[], int nh, double holes[])
void delaunay_destroy(delaunay *d)
void lpi_interpolate_points(int nin, point pin[], int nout, point pout[])
void lpi_interpolate_point(lpi *l, point *p)
int delaunay_xytoi(delaunay *d, point *p, int seed)
lpi * lpi_build(delaunay *d)