WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

erstellen einer oberfläche mit punkt

 

Derak

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.10.2008, 09:07     Titel: erstellen einer oberfläche mit punkt
  Antworten mit Zitat      
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.

das ist mein magerer code

Code:

function auswahl

h = fspecial('disk',10);
H = repmat(1:100,100)

end
 


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: ---
     Beitrag Verfasst am: 22.10.2008, 11:51     Titel:
  Antworten mit Zitat      
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?

Code:

function auswahl

clear all;
clc;

yp=0:1:5;

plot(0,yp,'o','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor','k');
hold off;
axis off
grid on

end
 
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 22.10.2008, 12:04     Titel:
  Antworten mit Zitat      
Versuchs mal mit meshgrid

Code:
x=0:5;
y=0:5;

[X,Y]=meshgrid(x,y);

plot(X,Y,'o','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor','k')
axis off
grid on


 

_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Derak

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.10.2008, 12:21     Titel:
  Antworten mit Zitat      
Vielen vielen dank... geht wunderbar.

jetzt kann ich erstmal versuchen weiter zu machen.
 
Derak

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.10.2008, 16:24     Titel:
  Antworten mit Zitat      
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.

Code:


function auswahl

clear all;
clc;

H = repmat(100,100);
H(1:100, 1:100) = 1;
imshow(H)
hold on

% Fenster

x=0:10:100;
y=0:10:100;

[X,Y]=meshgrid(x,y);

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

hold off

    colrow2 = colrow1;
    colrow2(1,:) = colrow1(1,:) + average_shift;
   
   figure, imshow (?????????????), title ('Bild 2 mit Startwerten')
   hold on, plot(colrow2(1,:), colrow2(2,:), 'm <');

 


da wo die vielen Fragezeichen stehen muss die Variable rein. Müsste jetzt für die meshgrid-funktion eine Variable definieren aber wie Question. 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
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 22.10.2008, 17:57     Titel:
  Antworten mit Zitat      
Ich konnte es gerade nicht testen, aber vom Prinzip her willst du die figure als Bild. Sowas vll in der Art?

Code:

x=0:5;
y=0:5;

[X,Y]=meshgrid(x,y);

figure(1)
plot(X,Y,'o','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor','k')
axis off
grid on

Z=getframe(1); % 1 entspricht dem handle der figure
figure(2)
imshow(Z.cdata)
 

_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Derak

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.10.2008, 08:54     Titel:
  Antworten mit Zitat      
ja genau sowas hab ich gesucht. Funktioniert auch wunderbar. Vielen dank
nochmal Very Happy
 
Derak
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 23.10.08
Wohnort: BZ
Version: R14
     Beitrag Verfasst am: 23.10.2008, 12:53     Titel:
  Antworten mit Zitat      
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

Code:

function auswahl

clear all;
close all;
clc;

% Vorgaben

average_shift = 0; % geschätzte Verschiebung (in x-Richtung)

% figure(1)

x=0:10:100;
y=0:10:100;

[X,Y]= meshgrid(x,y);

figure(1);
plot(X,Y,'o','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor','k');
axis off;
grid on;
Z=getframe(1);
imshow(Z.cdata)
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,'go')
    textrc = sprintf('%s %s %s %s','r=',int2str(yi),' c=', int2str(xi));
     colrow1(:,ipt) = [xi;yi];
end
hold off

% Näherungen

colrow2 = colrow1;
colrow2(1,:) = colrow1(1,:) + average_shift;

% figure(2)

a=0:10:100;
b=0:10:100;

[A,B]= meshgrid(a,b);

figure(2);
plot(X,Y,'o','MarkerSize',10,'MarkerEdgeColor','k','MarkerFaceColor','k');
axis off;
grid on;
H=getframe(2);
imshow(H.cdata)
hold on
 
colrow1_2 = [];
ipt_2 = 0;


mouse_button = 1;
set(gcf,'DefaultTextColor','red')
while mouse_button == 1
    [ai,bi,mouse_button] = ginput(1);
         ipt_2 = ipt_2+1;
         ai = round(ai);  bi = round(bi);
    plot(ai,bi,'g<')
    textrc = sprintf('%s %s %s %s','r=',int2str(bi),' c=', int2str(ai));
    colrow1_2(:,ipt_2) = [ai;bi];
end
hold off

    colrow2_2 = colrow1_2;
    colrow2_2(1,:) = colrow1_2(1,:) + average_shift;
   

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 <')

end
 


Wäre für eine letzte Hilfestellung sehr dankbar.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.