2016-03-29 15 views
0

Ich bin angewiesen, einen Kreis mit den Punkten zu zeichnen, die durch eine Matrix transformiert werden. Ich kann nicht scheinen, eine Linie zu bekommen zwischen allen PunktenLinien werden nicht in Oktave gezeichnet

c = cos(pi/8) 
s = sin(pi/8) 
A = [c -s; s c] 
xy = [1;0] 
axis('square') 
for i = 1:17 
    xy = A * xy; 
    plot(xy(1, :), xy(2,:), 'r', 'linewidth', 2); 
    hold on 
endfor 

zu ziehen, wenn ich den Code ausführen ich dieses

Result of running the code

Wie würde ich die Linien bekommen gezogen zwischen allen Punkten zu ?

Dank

+0

Es zeichnet Linien für Sie? –

+0

Ich bekomme keine Zeilen in Octave 3.8.2. – beaker

+0

Sorry @ Beaker, das für jemand anderen gedacht war, haben sie seit dem Löschen der Kommentare –

Antwort

0

Sie müssen alle Punkte, bevor Sie Grundstück berechnen. Wenn Sie nur jeweils einen Punkt zeichnen, kann keine Verbindung zu einer Linie hergestellt werden.

c = cos(pi/8) 
s = sin(pi/8) 
A = [c -s; s c] 
xy = zeros(2,17); %// preallocate the matrix 
xy(:,1) = [1;0] 
for i = 2:17 
    xy(:,i) = A * xy(:,i-1); 
endfor 

plot(xy(1, :), xy(2,:), 'r', 'linewidth', 2); 
axis('square') %// goes *after* the plot (thanks @Andy) 

Plot created by script

+0

Sorry für die Veröffentlichung nicht die Handlung selbst. Ich habe Probleme mit dem Speichern der Figur aus irgendeinem Grund. – beaker

+0

Btw, Sie müssen die "Achse ('Quadrat')" nach dem Plot-Befehl platzieren. – Andy

+0

@Andy Ja, mein Schlechter. – beaker

Verwandte Themen