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.

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

  • how can the color only be shown on the edges, not the interior, and make the edges stand out? – Chonglin Zhu Nov 10 at 16:15

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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