Surface plot of function over triangular domain

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 Kommentare

Gaudio
Gaudio am 26 Aug. 2015
Hello everybody,
I was able to solve my Problem with DelaunayTriangulation and inpolygon.
Best, Gauido
Noah Stam
Noah Stam am 29 Apr. 2022
Can you elaborate on your solution? :P

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Bruno Luong
Bruno Luong am 29 Apr. 2022
Bearbeitet: Bruno Luong am 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 Kommentare

Noah Stam
Noah Stam am 29 Apr. 2022
Thanks a lot!
You are welcome. Please accept the answer if it helps. Thanks

Melden Sie sich an, um zu kommentieren.

Gefragt:

am 21 Aug. 2015

Kommentiert:

am 29 Apr. 2022

Community Treasure Hunt

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

Start Hunting!

Translated by