How to Draw an Ellipse Flower like this?
    2 views (last 30 days)
  
       Show older comments
    
I need to draw 8 ellipses on the same grid and the angle of deviation between each of them must be pi/8. I have attached a flower with 18 leaves and I need to make one with 8 leaves. Each 'leave' is an ellipse.
Thanks in advance and greetings
0 Comments
Accepted Answer
  Image Analyst
      
      
 on 8 Jan 2017
        My attached demo does exactly that. Just adapt it to change the angle increment and center point.
4 Comments
  Image Analyst
      
      
 on 8 Jan 2017
				I adapted it for you.
% Demo to rotate an ellipse over an image.
% By ImageAnalyst
clc;    % Clear the command window.
close all;  % Close all figures (except those of imtool.)
imtool close all;  % Close all imtool figures.
clear;  % Erase all existing variables.
workspace;  % Make sure the workspace panel is showing.
hEllipse = imellipse(gca, [-5, -2, 5*2, 2*2]); % Second argument defines ellipse shape and position.
% Create a binary image ("mask") from the ROI object.
disp(hEllipse);
xy = hEllipse.getVertices();
x = xy(:,1);
y = xy(:,2);
xCenter = mean(x)
yCenter = mean(y)
plot(x, y);
axis equal;
% Set up figure properties:
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
% Get rid of tool bar and pulldown menus that are along top of figure.
set(gcf, 'Toolbar', 'none', 'Menu', 'none');
x = x - xCenter;
y = y - yCenter;
xy = [x y];
n = 8;
for theta = 0 : 180/n : 180 - 180/n
  fprintf('Theta = %f\n', theta);
  rotationArray = [cosd(theta) sind(theta); -sind(theta) cosd(theta)];
  rotated_xy = xy * rotationArray;
  x = rotated_xy(:,1);
  y = rotated_xy(:,2);
  plot(x, y, 'b-', 'LineWidth', 2);
  hold on;
end
ax = gca
grid on;
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
ax.XTick = -5:5
ax.YTick = -6:6
axis square;

More Answers (0)
See Also
Categories
				Find more on Explore and Edit Images with Image Viewer App in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
