Verfasst am: 22.10.2008, 08:07
Titel: erstellen einer oberfläche mit punkt
Hallo,
ich habe die Aufgabe bekommen einen Plot zu schaffen wo schwarze Kreise in 2 fenstern angeordnet sind. Sagen wir 10 Kreise x-richtung mal 10kreise y-richtung. Ziel des ganzen ist es, nachher mit der Maus 4 Punkte im ersten fenster auszuwählen, dann in das nächste Fenster zu wechseln, dort wieder 4 Punkte auszuwählen und am ende mit Pfeilen die Verschiebung der einzelnen Punkte zueinander grafisch anzeigen zu lassen, sprich nach dem Pixilprinzip. Fenster 1 hat Auflösung von 100X100, Fenster 2 Auflösung von 50x50. Wie sind die jeweiligen Punkte/Pixel vom fenster 1 zum fenster 2 verschoben.
mit fspecial kann man solche kreise erstellen, das hab ich schon rausgefunden aber jetzt häng ich schon fest. ich weiß nicht wie ich diese kreise in matrix bekomme bzw. wie ich die vervielfältigen kann, damit die das gesamte fenster ausfüllen. es sollen am ende schwarze kreise auf weißem hintergrund sein.
wäre für eine hilfestellung sehr dankbar.
Derak
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 22.10.2008, 10:51
Titel:
ich habe meinen code etwas umgebaut.....ich bekomme nun eine spalte mit punkten so wie ich sie haben will. problem was ich jetzt hab ist, das ich keine anderen spalten hinbekomme. also ich kann die spalte nicht in x-richtung multiplizieren......kennt einer eine variante wie man das schafft?
jetzt kann ich erstmal versuchen weiter zu machen.
Derak
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 22.10.2008, 15:24
Titel:
kann man die meshgrid so wie sie da steht auf als Variable definieren.
habs schon mit allem möglichen versucht. Mein Prob ist nun das ich das gleiche Fenster nochmal benötige. Da aber die Marker kein Bild sind das man als Variable definieren kann.
figure(1) plot(X,Y,'o','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor','k') axis off
grid on
hold on
colrow1 = [];
ipt = 0;
disp('Linker Mausbutton: Punkte auswählen/messen.') disp('Rechter Mausbutton: Letzten Punkt auswählen.')
mouse_button = 1;
set(gcf,'DefaultTextColor','red') while mouse_button == 1 [xi,yi,mouse_button] = ginput(1);
ipt = ipt+1;
xi = round(xi); yi = round(yi);
plot(xi,yi,'gx') end
da wo die vielen Fragezeichen stehen muss die Variable rein. Müsste jetzt für die meshgrid-funktion eine Variable definieren aber wie . Ein weiter Problem ist noch das das Fenster mit den Punkten um paar X bzw. Y-Werte verschoben ist. Aber das Problem ist erstmal nicht so wichtig. Könnte mir einer bitte weiter helfen
Mein code ist soweit fertig. Es geht auch alles. Allerdings tauchen noch 2 Probleme auf. Erstes Problem ist, das Matlab ab und zu Figure 1 in Figure 2 plottet bzw. Figure 2 in Figure 2. Woran kann das liegen? Das zweite Problem was ich noch hab ist das, das bei der Auswertung mir zwar angezeigt wird wie die Koordinaten der Punkte zueinander verschoben ist.
Als Beispiel. Im ersten Fenster einen Punkt ausgewählt, dann im zweiten Fenster einen augewählt. Punkt 1 hat die Koordinaten (73,32) und Punkt 2 (508,32). Diese Werden in Figure 3 angezeigt. Ich wöllte jetzt aber gern das Figure 3 mir sagt. Punkt 1 ist um 435 in X-Richtung und 0 in Y-Richtung im vergleich zu Punkt 2 verschoben. Kann man das bei Figure 3 bei der Achsenaufteilung einstellen? Hier einmal mein Code
disp('Linker Mausbutton: Punkte auswählen/messen.') disp('Rechter Mausbutton: Letzten Punkt auswählen.')
mouse_button = 1;
set(gcf,'DefaultTextColor','red') while mouse_button == 1 [xi,yi,mouse_button] = ginput(1);
ipt = ipt+1;
xi = round(xi); yi = round(yi);
plot(xi,yi,'go')
textrc = sprintf('%s %s %s %s','r=',int2str(yi),' c=', int2str(xi));
colrow1(:,ipt) = [xi;yi];
end hold off
figure(3), axis on, grid on, title('Verschiebung der einzelnen Punkte zu einander in X und Y-Richtung') hold on, plot(colrow2(1,:), colrow2(2,:), 'm o'),plot(colrow2_2(1,:), colrow2_2(2,:), 'm <')
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.