Creating plans and 3D shapes with x,y,z coordinates.

2 views (last 30 days)
Hi everyone,
I am trying to generate different 3D shapes with matlab. The idea is to represent a coral reef (picture attached). I could like the edge of the reef to have a concave shape. To get this shape I am using the elipse equation:
t = linspace(0,pi);
xe = 4 + 4*cos(t);
yconv = 5 + 5*sin(t);
plot(yconv,xe)
axis equal
I am trying to think of a way to do it but I am not sure how to start it.
Any ideas would be great. Thanks a lot
Raphael

Accepted Answer

KALYAN ACHARJYA
KALYAN ACHARJYA on 9 Mar 2021
There may be subjective related toolboox/CAD tool to design such surfaces. You may try with surf plot, here on eexample. Here you have to find the values ​​of the z-direction array elements, such that it reflects the same plot.
a=1:10;
b=1:10;
c=[ones(4,10);1.5*ones(2,10);2*ones(4,10)];
% Add step in c data
surf(a,b,c);
grid on;
  2 Comments
Raphael Krier
Raphael Krier on 10 Mar 2021
Hi Kalyan,
Thanks for your reply.
I managed to create the bathymetry I wanted. I first created a vector containing the y coordinates (dy=1m). I generated a vector containing the desired x coordinate (distance of each contour from the x0 origine for a given y). So for each contour I have two vectors y and corresponding x coordinates with dy=1m.
Then I used trigonometry to obtain z coodinates of each contour line for a given y (because I wanted a given gradient for each platform).
Finaly I used interp1 to interpolate the cross section on a dx=1m interval. Using a loop I obtained the cross section (x,z) for each y coordinates and stored them in a matrix.
Just out of curiosity, do you have a link to the CAD toolbox?
Thanks again,
Raphael

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!