3
$\begingroup$

How can I use the interpolating functions I constructed for the four nodes of a quadrilateral to use as parameters to smoothly paint the edges of the quadrilateral when 4 different color values are given on the four nodes already. how do I use these as parameters to do it? do I have to do it piecewise or do I have to use the polynomial: the sum of the product of the interpolating function with their respective data point?

localCoordinates={{-(5/4), -(3/2)}, {3/4, -(3/2)}, {7/4, 7/2}, {-(5/4), -(1/2)}};

deltaNa=((7 + 8 x - 6 y) (-21 + 20 x - 4 y))/(4 (169 + 80 x + 6 y));

deltaNb=-((5 (5 + 4 x) (7 + 8 x - 6 y))/(4 (169 + 80 x + 6 y)));

deltaNc=-((11 (5 + 4 x) (3 + 2 y))/(4 (169 + 80 x + 6 y)));

deltaNd=-((3 (3 + 2 y) (21 - 20 x + 4 y))/(4 (169 + 80 x + 6 y)));

the A, B, C, D is in the order of the list in localCoordinates; can Manipulate also be incorporated for changing the values.

I really do not know ho to do it so I want to find help.

$\endgroup$

1 Answer 1

1
$\begingroup$

By pulling back to the unit square and by creating a texture:

localCoordinates = {{-(5/4), -(3/2)}, {3/4, -(3/2)}, {7/4, 7/2}, {-(5/4), -(1/2)}};
deltaNa[x_, y_] = ((7 + 8 x - 6 y) (-21 + 20 x - 4 y))/(4 (169 + 80 x + 6 y));
deltaNb[x_, y_] = -((5 (5 + 4 x) (7 + 8 x - 6 y))/(4 (169 + 80 x + 6 y)));
deltaNc[x_, y_] = -((11 (5 + 4 x) (3 + 2 y))/(4 (169 + 80 x + 6 y)));
deltaNd[x_, y_] = -((3 (3 + 2 y) (21 - 20 x + 4 y))/(4 (169 + 80 x + 6 y)));

fa[x_, y_] = deltaNa @@ ({(1 - x) (1 - y), x (1 - y), x y, (1 - x) y}.localCoordinates);
fb[x_, y_] = deltaNb @@ ({(1 - x) (1 - y), x (1 - y), x y, (1 - x) y}.localCoordinates);
fc[x_, y_] = deltaNc @@ ({(1 - x) (1 - y), x (1 - y), x y, (1 - x) y}.localCoordinates);
fd[x_, y_] = deltaNd @@ ({(1 - x) (1 - y), x (1 - y), x y, (1 - x) y}.localCoordinates);
cols = Join[IdentityMatrix[3], {{0, 0, 0}}];
f[x_, y_] = -{fa[x, y], fb[x, y], fc[x, y], fd[x, y]}.cols;
n = 128;
a = Outer[f, Subdivide[0., 1., n], Subdivide[0., 1., n]];
tex = Image[a];

Graphics[{
  Texture[tex],
  GraphicsComplex[
   localCoordinates,
   Polygon[{{1, 2, 3, 4}}],
   VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}
   ]
  }

enter image description here

$\endgroup$
1
  • $\begingroup$ how can the color only be shown on the edges, not the interior, and make the edges stand out? $\endgroup$ Nov 10, 2018 at 16:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.