Verfasst am: 10.12.2011, 21:44
Titel: nur Ebene im Plot transparent machen Rest nicht.
hallo liebes forum,
ich hab ein Programm geschrieben, dass zunächst Punkte 3D plottet und dann noch eine Ebene einfügt. Die Ebene soll dann trasparent sein, der Rest aber nicht. Das ist mein Code:
Code:
function[ x ] = grid3d( l )
%UNTITLED7 Summary of this function goes here
% Detailed explanation goes here
d=3;
m=l+d-1;
for i=1:m-1 for j=1:m-i
for k=1:m-i-j
for r=1:2^i-1 for s=1:2^j-1 for t=1:2^k-1
a=r*2^(-i);
b=s*2^(-j);
c=t*2^(-k);
x=[a b c];
axis([0,1,0,1,0,1]) if c==0.5 plot3(x(:,1), x(:,2),x(:,3),'.black') else plot3(x(:,1), x(:,2),x(:,3),'.r') hold on;
Verfasst am: 10.12.2011, 23:55
Titel: Re: nur Ebene im Plot transparent machen Rest nicht.
Hallo selmer,
Ich habe um Dein Programm laufen zu lassen mal l=3 gesetzt. Damit bekomme ich zumindest keine Darstellungsprobleme.
Dann habe ich es mit l=300 versucht - ich habe ja keine Ahnung, was Dein Code macht. Damit stieg mein Matlab aus.
Zitat:
Irgendwie wird alles transparent (Punkte, Gitter,...) und nicht nur die Ebene.
Zumindest werden bei mir die Punkte nicht transparent. Ein Gitter sehe ich nicht, auch ohne den ALPHA-Befehl. Was "..." bedeutet, weiß ich nicht.
Vielleicht gibt es Probleme mit Deinem OpenGL-Treiber. Dann versuche mal den Software-OpenGL-Treiber zu verwenden, siehe "help opengl".
in matlab ist das ganze noch nicht transparent erst wenn ich es als pdf speicher. hätte ich vielleicht noch dazu sagen sollen. woran könnte das liegen?
l=300 ist vielleicht vom rechenaufwand ein bisschen viel!
Deshalb ist es immer praktisch erstens die verwendeten Werte mit anzugeben, und zweitens das Problem vollständig und mit allen notwendigen Details zu beschreiben. Das schont die Zeit der Antwortenden.
ich speichere den plot als pdf.
Wenn ich das ganze ohne die ebene speichere bekomme ich ein ganz normales bild. mit ebene werden die linien und punkte pixelig.
siehe datei.
Ja, aber wie? Per PRINT(-dPDF) oder zuerst mit PRINT(-depsc2) und danach per GhostScript konvertieren? Oder mit einem PDF-Writer und einem normalen Druck-Job? Oder per GETFRAME und speichern als PDF-Image?
Veränderst Du dabei den Renderer? Transparenzen können nämlich nur mit den OpenGL-Renderer dargestellt werden. Der kann aber nur Bitmap-Grafiken exportieren, im Gegensatz zum Painters Renderer, der Vektor-Grafiken erzeugt. Wenn man aber Bitmaps exportiert, hängt die Darstellung im PDF-Betrachter von der gewählten Auflösung ab. Wenn Du dann noch im PDF-Betrachter (z.B. Acrobat-Reader) die Glättung von Pixel-Grafiken eingeschaltet hast, könnten kleine Pixel schonmal verschmiert aussehen.
Bitte poste also die Dateils, so dass wir nachvollziehen können, was Du überhaupt machst.
Gruß, Jan
Zuletzt bearbeitet von Jan S am 11.12.2011, 18:36, insgesamt einmal bearbeitet
ich hab in der Plotanzeige zunächst noch die Box hinzugefügt und die Ausrichtung geändert und dann über "save as" die datei als pdf gespeichert.
ich habs jetzt auch nochmal mit print -dpdf probiert da siehts nur unwesentlich besser aus. kann aber dann natürlich nichts mehr ändern.
Wenn ich das von Dir gepostete PDF in Acrobat-Reader 10.1.1 öffne und wie gesagt das Glätten der Pixel-Grafiken ausgeschaltet habe, sieht das PDF gut aus: Die Punkte sind scharf, die Gitternetz-Linien der Achsen gepunktet und die Fläche ist halbtransparent.
Also liegt das Problem nicht bei Matlab, sondern bei Deinem PDF-Betrachter. Kann das sein?
In Acrobat Reader X (Ich benutze ein Englisches System): Edit -> Preferences -> Page Display -> Rendering
Bei einer älteren Acrobat-Version sah das verschwommener aus, aber bei 10.1.1 finde ich die Darstellung mit und ohne Glättung eigentlich brauchbar. Von "alles wird transparent" kann jedenfalls keine Rede sein.
Gruß, Jan
Einstellungen und Berechtigungen
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.