How to create an off-center, rotated, cosine-ramped edged ellipse?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi all,
I'm trying to make an off-center, rotated, cosine-ramped edged ellipse. Managed to make it off-center and cosine-ramped the edges, but I'm having difficulties trying to rotate it. Here's my code so far:
imSize =128;
width=10;
height=20;
aspectRatio=width/height;
nCosSteps=5;
[X,Y]= meshgrid((-imSize/2+1:imSize/2),(-imSize/2+1:imSize/2));
radii = sqrt((X-centerX).^2 + ((Y-centerY)*aspectRatio).^2);
%%%set inner edge to zero
radii = radii - radii(floor(end/2)+centerX+floor(apWidth/2)
- nCosSteps,floor(end/2)+centerY+floor(apHeight/2)-nCosSteps);
%%%Do linear transform to set outer edge to pi
outerVal = radii(end/2+centerX+floor(apWidth/2)-1,
end/2+centerY+floor(apHeight/2)-1);
radii = radii * pi/outerVal ;
% set more central values 0 (ie, cos(0) = 1)
radii( find(radii<=0) ) = 0;
% set values more beyond steps to pi (ie, cos(pi) = 0)
radii( find(radii>=pi) ) = pi;
% Take cos of all the transformed radial values.
raisedCosMask = .5 + .5 * cos(radii);
if mod(imSize,2) == 1% odd number
raisedCosMask = raisedCosMask(1:end-1,1:end-1);
end
And this gives:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/152774/image.png)
How should I proceed to rotate this ellipse (i.e., angles like 45 degrees, 20 degrees)? Any help would be greatly appreciated! :)
0 Kommentare
Antworten (0)
Siehe auch
Kategorien
Mehr zu Surface and Mesh Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!