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

Surf-Befehl

 

Cerberus
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 16.06.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2007, 23:20     Titel: Surf-Befehl
  Antworten mit Zitat      
Hallo zusammen,

ich würde gerne mehrere Oberflächen mit
Code:
übereinander legen, und einige davon dann leicht durchsichtig machen, weiß jemand wie das geht?
Oder wenigstens wie man die Farben der Oberflächen beeinflusst?

Danke für Eure Hilfe
Cerb.
Private Nachricht senden Benutzer-Profile anzeigen


Asuka
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 16.06.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2007, 11:44     Titel: "transparent"
  Antworten mit Zitat      
Hallo Cerberus,

hast du schon mal in der Hilfe nach "transparent" gesucht?
Da steht, dass die Tranparenzfunktion sehr wichtig ist und häufig gebraucht wird. Leider ist kein Code-Beispiel vorhanden. Aber vielleicht hilft dir das ja trotzdem weiter.

Und du bräuchtest angeblich OpenGL dafür, was du eigentlich haben müsstest auf dem Rechner. Bin mir aber nicht sicher, wie das mit Bürorechnern so ist.
Der OpenGL-Standard beschreibt etwa 250 Befehle, die die Darstellung komplexer 3D-Szenen in Echtzeit erlauben. Die Implementierung des OpenGL-API wird in der Regel als Teil der Grafikkarten-Treiber ausgeliefert.


Schöne Grüße
Asuka
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 18.06.2007, 14:31     Titel: Vorschlag
  Antworten mit Zitat      
Wenn man die Hilfe öffnet, findet man über "Getting Started", "Graphics", "Mesh and Surface Plots" eine Seite mit einem Beispiel. Diese Beispielfunktion wird auch transparent gezeigt. Der Befehl
Code:
bezieht sich aber auf die ganze figure.
Die Transparenz einzelner Flächen ("FaceAlpha") kann man mit
Code:
ändern. Hier sieht man, anhand derselben Beispielfunktion, wie das geht:

Code:
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(X,Y,Z,'EdgeColor','black')

h1=surf(X,Y,Z);
colormap hsv
colorbar
hold on

h2=surf(X,Y,Z+0.5)
set(h2,'FaceAlpha',0.5)

h3=surf(X,Y,Z+1)
set(h3,'FaceAlpha',0.2)


Die Farben kann man übrigens über die colormap ändern. Wenn Du spezielle Fragen dazu hast, immer her damit.

Herzliche Grüße
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Cerberus
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 16.06.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.06.2007, 10:34     Titel:
  Antworten mit Zitat      
Hallo zusammen,

erstmal vielen vielen Dank für die Antworten!

Waren super hilfreich, daher auch erst die späte Antwort, war zu sehr mit ausprobieren beschäftigt Wink

Naja und eine kleine Frage zur Colormap hätte ich noch: kann ich dann nur einzelnen Oberflächen in der gleichen Figure eine andere Colormap zuordnen?

Grüße
Cerberus
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 21.06.2007, 11:32     Titel: Farben
  Antworten mit Zitat      
Ah, jetzt verstehe ich. Nein, die Colormap bezieht sich auf die ganze figure. Allerdings kann man jedem einzelnen Element jeder Fläche eine beliebige Farbe zuordnen. Das geht über den vierten Parameter im surf-Befehl. Wenn du einfarbige Flächen möchtest, muss also jedem Element derselbe Wert zugeordnet werden. Diese werden dann auf die aktuelle colormap skaliert. Also zum Beispiel so:
Code:
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
C=ones(size(X));

h1=surf(X,Y,Z,C);
hold on

h2=surf(X,Y,Z+0.5,2*C);
 


Im Default-Fall gilt C = Z. Wenn also nur die Unterschiede deutlicher ausfallen sollen, kann man eine Konstante addieren:
Code:
h1=surf(X,Y,Z);
hold on

h2=surf(X,Y,Z+0.5,Z+1.5);
 


Oder man konstruiert wirklich eine Matrix C, in der genau die Werte stehen, die man haben will (immer bezogen auf die aktuelle colormap).

Herzliche Grüße
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Michaela
Forum-Century

Forum-Century


Beiträge: 239
Anmeldedatum: 12.07.07
Wohnort: ---
Version: bis 2007b
     Beitrag Verfasst am: 12.07.2007, 20:46     Titel:
  Antworten mit Zitat      
Passt nur am Rande zum Thema, aber vielleicht wisst ihr es ja:

Die Transparenz macht Matlab ja (zumindest unter Windows) mittels OpenGL. Angeblich kann da nun nicht jede Graphikkarte mit, bzw. hängt es vom Treiber ab. Wisst ihr, wie man leicht herausfinden kann, welche Graphikkarten Probleme machen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Martin
Admin

Admin



Beiträge: 651
Anmeldedatum: 16.06.07
Wohnort: Bietigheim-Bissingen
Version: ---
     Beitrag Verfasst am: 12.07.2007, 20:53     Titel:
  Antworten mit Zitat      
Hallo Michaela,

erst einmal willkommen im Forum Very Happy
Bitte stelle Fragen die nicht 100% zu dem Topic passen in einer eigenen Frage. Da bekommst du auch wesentlich mehr antworten.

Viele Grüße Martin
_________________

Der kleine goMatlab.de-Knigge - Eine kleine Liste von wichtigen Regeln, die jeder beachten sollte
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.