2014-11-02 19 views
7

Ich wurde gebeten, verschiedene Wege zum Zeichnen eines Kreises in MATLAB,Grundstück Kreis in MATLAB

Es scheint langweilig. Allerdings konnte ich mit einigen Ideen kommen (einige vielleicht ineffizient sein!),

Methode 1

ezpolar(@(x)1); 

Methode 2

t = linspace(0,2*pi,100); 
plot(sin(t),cos(t)); 

Methode 3

[X,Y,~] = cylinder(1,100); 
plot(X(1,:),Y(1,:)); 

Methode 4

ezplot('x^2 + y^2 - 1'); 

Methode 5

theta = linspace(0,2*pi,100); 
ro = ones(1,100); 
[X,Y] = pol2cart(theta,ro); 
plot(X,Y); 

und es wurde interessant.

Ich bin neugierig, wenn Sie andere Ideen haben.

Danke.

Edit

Methode 11

azimuth = linspace(-pi,pi,100); 
r = ones(1,100); 
elevation = zeros(1,100); 
[X,Y,Z] = sph2cart(azimuth,elevation,r); 
patch(X,Y,Z) 
%% (not sure how it works! any improvement suggestions?) 

Antwort

4

Wenn Sie in Polarkoordinaten gehen gehen, dann gibt es auch

Methode 6

theta = linspace(0,2*pi,100); 
rho = ones(1,100); 
polar(theta, rho) 

Methode 7

ezpolar('1') % Shortest? 


Sie können auch die Vorteile komplexe Zahl nehmen und how they're handled von plot:

Methode 8

theta = linspace(0,2*pi,100); 
rho = ones(1,100); 
z = rho.*exp(1i*theta); 
plot(z) 

Die oben auf einem getan werden könnte, Linie.Es könnte auch grafisch dargestellt werden als:

plot(real(z),imag(z)) 

Methode 9

plot(0,0,'o','MarkerSize',100) 

Methode 10

text(0,0,'\circ','FontSize',200) 

Viele other unicodecharacters kann verwendet werden, Kreise zu erzeugen.


Man könnte dies mit Differentialgleichungen zu erzeugen, Kreise erstrecken, z.B. circular orbits und zirkulären limit cycles (Hopf oscillator).

2

Methode 12

rectangle('Position', [-0.5, -0.5, 1, 1], 'Curvature', [1 1]); 

generali:

circle = @(x, y, r) rectangle('Position', [x-r, y-r, 2*r, 2*r], ... 
    'Curvature', [1 1]); 

circle(0, 0, 1); 
circle(10, 20, 5); 
axis equal; 
+0

Danke für die Antwort, – Rashid

Verwandte Themen