From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Re: Interpolation with coordinates
Date: Mon, 28 May 2012 14:47:07 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 14
Message-ID: <jq035b$jqr$>
References: <jpvov1$ae2$>
Reply-To: <HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: 1338216427 20315 (28 May 2012 14:47:07 GMT)
NNTP-Posting-Date: Mon, 28 May 2012 14:47:07 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1187260
Xref: comp.soft-sys.matlab:769217

"Jose Miguel " <> wrote in message <jpvov1$ae2$>...
> I have four sets of data, (u1,v1), (u2,v2), (u3,v3) and (u4,v4) located at coordinates (x1,y1), (x2,y2), (x3,y3) and (x4,y4). I would like to obtain a new set of data (u0,v0) at given coordinates (x0,y0) using a bilinear interpolation.
- - - - - - - - - -
  As an afterthought, with your general placement of points it would seem much more natural to ask for a six-point interpolation with a general 2D quadratic function involving six coefficients:

 f(x,y) = K1*x^2 + K2*x*y + K3*y^2 + K4*x + K5*y + K6.

After all, when the bilinear form

 K1*x*y + K2*x + K3*y + K4

is subjected to rotation, the result is a 2D quadratic involving terms in x^2 and y^2.  A bilinear surface when rotated is no longer bilinear in the new coordinates, and restriction to bilinearity is therefore somewhat arbitrary.

Roger Stafford