Equations or code that can generate shapes

I have x and y coordinates of a n*2n grid fixed grid. I have generated circular shape (circle.JPG) with
sqrt((x-cx).^2 +(y-cy).^2)-r, where (cx, cy) are the centre and r is the radius of the circle
I have generated elliptical shape (ellipse.JPG) with
((x-cx)/a).^2 +((y-cy)/b).^2)-1, where (cx, cy) are the centre and a is the horizontal radius and b is the vertical radius of the ellipse
I need a code that can generate each of the following shapes in the picture (Picture_1.jpg).
Thank you so much.

6 Comments

jonas
jonas on 13 Oct 2018
Edited: jonas on 13 Oct 2018
It seems you already know how polyshapes work, so what's the problem?
@jonas,I do not know how to generate the shapes in Picture_1.Thank you so much.
Well do you have coordinates for the corner points?
The domain is 2*1. The height is 2 and the width is 1. So, by discretizing with 8*4 fixed grid in the picture, the coordinate of the corners are ((0,0.5), (0,0.75), (2,0.5), (2,0.75))It is a signed distance function.
And you were not able to adapt the code I gave below???
No, I do not know how to adapt it. For convenience, find the attached signeddistance.m file for you to get a better understanding of what I am talking about. The attached code can generate the shape for rectangle, ellipse and circle using signed distance if you run the portion corresponding to each shape. I need a code that can give the shapes in the picture above using signed distance. Thank you so much.
I have posed the question in a better way here:
https://www.mathworks.com/matlabcentral/answers/423827-matlab-code-for-generating-some-shapes-using-signed-distance

Sign in to comment.

Answers (1)

Try this:
period = 10;
amplitude = 4;
offset = 6;
x = linspace(0, 40, 700);
y = amplitude * cos(2 * pi * x / period) + offset;
plot(x, y, 'b-', 'LineWidth', 2);
grid on;
ylim([0, amplitude + offset]);
For the triangle wave, use sawtooth() or repmat(). I'm sure you can figure it out because you're a smart engineer.

Categories

Find more on Interpolation in Help Center and File Exchange

Asked:

on 13 Oct 2018

Edited:

on 13 Oct 2018

Community Treasure Hunt

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

Start Hunting!