2016-07-27 27 views
2

Ich weiß nicht, wie man einen Kreis in 12 Stücke (Scheiben) unterteilt, so dass ich auf einen von ihnen klicken kann. Ich möchte das in Matlab machen. Ich denke, ist wie Radioknöpfe, aber ich weiß nicht, wie man diese Form macht, die ich will.Wie kann ich ein Kreisdiagramm erstellen, damit ich auf ein beliebiges Stück klicken kann?

Es ist wie ein Tortendiagramm (gleich verteilt) und ich kann auf eine Scheibe wie auf einer Schaltfläche klicken. Irgendwelche Ideen?

Antwort

5

Die Ausgabe von pie ist ein Array von Handles für die Patches und Textbeschriftungen, aus denen das Kreisdiagramm besteht. Sie können ButtonDownFcn der Patch-Objekte festlegen, um den Mausklick zu erfassen. Sie könnten dann das Handle des angeklickten Patches mit Ihrem Array von Patches vergleichen, um herauszufinden, auf welches geklickt wurde. Hier

ein Beispiel:

handles = pie(1:5); 
patches = findall(handles, 'type', 'patch'); 

set(patches, 'ButtonDownFcn', @(s,e)clickfunction(find(patches == s))) 

function clickfunction(index) 
    fprintf('Clicked piece: %d\n', index) 
end 

enter image description here

+0

Wie haben Sie das schöne gif machen? –

+1

@ Jørgen ein Werkzeug namens [licecap] (http://www.cockos.com/licecap/) – Suever

+0

@BeniaminIonutDobre Dies ist nur eine Erinnerung, dass Sie die Antwort als akzeptiert markieren können, wenn es Ihre Frage gelöst hat –