필터 지우기
필터 지우기

Generate 3D shapes

조회 수: 66 (최근 30일)
Tim Micallef
Tim Micallef 2011년 4월 8일
댓글: Ayush singhal 2021년 4월 13일
Hi all,
I'm struggling to figure out how to create a few 3D shapes, such as a 3D pyramid.
Basically what I want is say for example, in a 25x35 domain, at every point a value between 0 and 1 is produced. And when the 25x35 matrix is plotted using surf for example, a rectangular based pyramid will be plotted.
The following is an example but of a 3D gaussian, and I can't figure out how to do any other shape:
x = linspace(-4,4,25); y = linspace(-4,4,35); [X,Y] = meshgrid(x,y); Z = exp(-X.^2-Y.^2); figure; surf(X,Y,Z);
Thanks very much in advance! Tim

답변 (2개)

Jarrod Rivituso
Jarrod Rivituso 2011년 4월 8일
Looks like you are on the right track and you just need to get the correct equation for the height of the pyramid.
One thing I've found helpful in similar situations is to sometimes define the size of the grid larger than needed and then use NaN to indicate points that I don't want to be drawn. This helps eliminate the need to conform to a square boundary.
Here's a pyramid example
>> x = linspace(-8,8,200);
>> y = linspace(-8,8,200);
>> [X,Y] = meshgrid(x,y);
>> Z = (4-abs(X)) + (4-abs(Y));
>> Z(Z < 0) = NaN;
>> surf(X,Y,Z)
Hope this helps!
  댓글 수: 1
Ayush singhal
Ayush singhal 2021년 4월 13일
and how to generate sphere, cube,cylinder?

댓글을 달려면 로그인하십시오.


Nausheen
Nausheen 2013년 7월 7일
We can think of pyramid as a cone. To draw this cone we give it only 4 sides, so it would draw a pyramid. cylinder([1 0],4)

카테고리

Help CenterFile Exchange에서 Line Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by