Matlab Kreise zeichnen < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 22:28 Di 26.05.2009 | Autor: | marcsn |
Hallo,
habe ein kleines Problem mit Matlab.
Hab ein paar Berechnungen an einem Bild durchgeführt und möchte nun an verschiedenen Stellen des Bildes Kreise mit bekannten Radius r einzeichnen.
Das Kreiszeichnen habe ich zwar mit folgendem Code hinbekommen:
plot(z + radius*cos(2*pi/40*(0:40)), y + radius*sin(2*pi/40*(0:40)),'r','LineWidth',3);
Allerdings gibt es damit folgendes Problem:
Wenn der Kreismittelpunkt nahe am Rand des Bildes liegt, so wird das Bild automatisch vergrößert, sodass der gezeichnete Kreis komplett zu sehen ist :(
Kann mir jemand sagen wie ich es so hinbekomme, dass in dem beschriebenen Fall halt nur der Teil des Kreises gezeichnet wird, der auch wirklich auf dem Bild liegt?
Achja habe ein beliebiges Bild mit image(BILD) ausgegeben und führe dann aus:
hold on
plot(...)
hold off
Damit konnte ich direkt auf das ausgegebene Bild zeichnen
mfg
Marcsn
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 00:03 Mi 27.05.2009 | Autor: | Frasier |
Hallo Marcsn,
eine einfache Lösung wäre die Achsen-Intervalle entsprechend zu manipulieren.
1: | load mandrill
| 2: | image(X)
| 3: | colormap(map)
| 4: | axis off
| 5: | axis image
| 6: | xl=xlim; % Originalgroesse merken
| 7: | yl=ylim;
| 8: | hold on;
| 9: | z=60;
| 10: | y=60;
| 11: | radius=250;
| 12: | plot(z + radius*cos(2*pi/40*(0:40)), y + radius*sin(2*pi/40*(0:40)),'r','LineWidth',3);
| 13: | hold off;
| 14: | xlim(xl); % Originalgroesse wiederherstellen
| 15: | ylim(yl); |
lg
F.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 20:07 Mi 27.05.2009 | Autor: | marcsn |
GODLIKE !
Das hat super geklappt. Genau so habe ich mir das vorgestellt !!
Vielen Dank !
|
|
|
|