If I start with a matrix of zeros, how can I easily create a Hypocycloid of ones in that matrix?
1 view (last 30 days)
Show older comments
I want to make an Hypocycloid with a matrix of zeros, it is for make the Fourier Transformation of the image. Something like this https://la.mathworks.com/help/images/fourier-transform.html but instead the Rectangle I need a Hypocycloid like the examples of this page https://es.wikipedia.org/wiki/Hipocicloide when K=3,4 and 5

2 Comments
Jan
on 9 Mar 2022
Please mention the details. How should the "hypocycloid" look like? What have you tried so far? What is "the TF"?
Answers (1)
Jan
on 10 Mar 2022
Edited: Jan
on 11 Mar 2022
A point to start from - it is not hard to expand this to fill elements of the zero matrix:
M = zeros(512, 512);
a = linspace(0, 2*pi, 10000);
% Hypocycloid:
r1 = 1;
r2 = 0.2; % 1/n
x = (r1 - r2) * cos(a) + r2 * cos(a * (1 - r1 / r2));
y = (r1 - r2) * sin(a) + r2 * sin(a * (1 - r1 / r2));
xx = 1 + round((x + 1) / 2 * 511);
yy = 1 + round((y + 1) / 2 * 511);
M(sub2ind(size(M), xx, yy)) = 1;
% Circle:
x = r1 * cos(a);
y = r1 * sin(a);
xx = 1 + round((x + 1) / 2 * 511);
yy = 1 + round((y + 1) / 2 * 511);
M(sub2ind(size(M), xx, yy)) = 1;
colormap([1,1,1; 0,0,0]) % Display the matrix:
image(M + 1)
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!