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

Wie aus Normalenvektoren eine 3D-Oberfläche plotten?

 

Freacky2002
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 29.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2014, 18:59     Titel: Wie aus Normalenvektoren eine 3D-Oberfläche plotten?
  Antworten mit Zitat      
Hallo Zusammen,

ich suche schon seit längerem eine Möglichkeit mit Matlab aus einem Normalenvektor mit
Code:

n=(n_x;n_y;n_z)
 

eine Oberfläche in 3D zu plotten. Prinzipiell würde das einer Integration über dieses "Normalenfeld" entsprechen. Hat jemand vielleicht eine Idee? Wäre sehr dankbar dafür.

Vielen Dank schonmal!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.08.2014, 20:12     Titel:
  Antworten mit Zitat      
Hallo,

also eine Ebene?
Dann z.B. Punkte auf der Oberfläche berechnen und surf verwenden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Freacky2002
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 29.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2014, 20:39     Titel:
  Antworten mit Zitat      
Danke Haralad für deine Antwort.

Ja es wäre eine gekrümmte Ebene im 3D-Raum. Du meintest Punkte berechnen, könntest du vielleicht kurz erläutern was du meinst?

Aktuell habe ich es nur mit der z-Richtung hinbekommen. Das sieht folgendermaßen aus:

Code:

data = h5read('Normalenfeld.h5','/data');
tmp=data(:,3);
z = vec2mat(tmp,1388); %image has size of 1388x1038 pixel
x=linspace(0,1387,1388);
y=linspace(0,1037,1038);


% the image data you want to show as a plane.
planeimg = abs(z);
[X,Y]=meshgrid(x,y);
surf(x,y,z);shading interp
g=gcf;
set(gcf, 'units','normalized','outerposition',[-0.05 0 1 0.95]); % Maximize
set(g,'PaperOrientation','landscape');

h=colorbar('EastOutside');
set(h, 'Position', [0.907 0.069 0.038 0.915]);

% set a colormap for the figure.
colormap(hsv);
 
% set the view angle.
view(25,45);
 
% labels
 
xlabel('Spaltenindex');
ylabel('Zeilenindex');
zlabel('Normale in z-Richtung');
 


Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.08.2014, 22:03     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
könntest du vielleicht kurz erläutern was du meinst?

Zu bestimmten x- und y-Werte aufgrund der Ebenengleichung die z-Werte berechnen. Allerdings willst du ja anscheinend keine Ebene, sondern eine gekrümmte Fläche (was dann nunmal keine Ebene ist).

Wenn du eine gekrümmte Fläche haben willst, dann brauchst du doch nicht einen Normalenvektor, sondern einen in jedem Punkt?

Dafür würde ich dann quiver3 verwenden.

Grüße,
Harald
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.