Surface plot of function over triangular domain

17 visualizzazioni (ultimi 30 giorni)
Gaudio
Gaudio il 21 Ago 2015
Commentato: Bruno Luong il 29 Apr 2022
Hello,
I would like to create a surface plot over a triangular domain. The result should be a curved triangle. I have a little example here:
syms x y
z = x^2+y^2;
ezsurf(x,y,z);
hold on
% triangular domain with P(x,y)
P1 = [1,1];
P2 = [2,0.5];
P3 = [4,4];
plot([P1(1);P2(1);P3(1);P1(1)],[P1(2);P2(2);P3(2);P1(2)]);
All z values for x,y combinations inside the triangle shall be plotted. The rims should not look like steps. Do you have any suggestions?
Thanks a lot.
Ps: I am using Symbolic Math Toolbox (as you might see)
  2 Commenti
Gaudio
Gaudio il 26 Ago 2015
Hello everybody,
I was able to solve my Problem with DelaunayTriangulation and inpolygon.
Best, Gauido
Noah Stam
Noah Stam il 29 Apr 2022
Can you elaborate on your solution? :P

Accedi per commentare.

Risposte (1)

Bruno Luong
Bruno Luong il 29 Apr 2022
Modificato: Bruno Luong il 29 Apr 2022
P1 = [1,1];
P2 = [2,0.5];
P3 = [4,4];
zfun = @(x,y) x.^2+y.^2;
% Create triangular mesh of triangla P1,P2,P3
n=20;
[I,J]=meshgrid(linspace(0,1,n));
keep=I+J <= 1+eps;
IJ = [I(keep),J(keep)];
K = 1-sum(IJ,2);
F=delaunay(IJ);
IJK = [IJ,K];
XY=IJK*[P1;P2;P3];
x=XY(:,1);
y=XY(:,2);
trisurf(F,x,y,zfun(x,y))
  2 Commenti
Bruno Luong
Bruno Luong il 29 Apr 2022
You are welcome. Please accept the answer if it helps. Thanks

Accedi per commentare.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by