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

Plot: Kreis um Kugel!

 

Stephan_II

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.09.2010, 22:40     Titel: Plot: Kreis um Kugel!
  Antworten mit Zitat      
Hallo,

ich benutzte Octave 3.2.4 mit GNU Plot.
ich erzeuge in einem 3D- Plot eine Kugel, und einen Kreis!
Die Kugel stelle ich mit surf dar, den Kreis mit plot3.
Nun, der Kreis und die Kugel haben den gleichen Mittelpunkt und der Kreis ist Größer als die Kugel. Je nachdem was ich zuerst plotte, verschwindet der Kreis hinter der Kugel oder umgekehrt. Dabei geht der Kreis um die Kugel herum. Ist es möglich so zu plotten das der von der Kugel verdeckte Teil des
Kreise auch wirklich verdeckt wird, und der Rest sichtbar ist?!??

Dre Code ist etwas länger, aber hänge in trozdem mal an..

Vielen Dank für eure Hilfe!

Viele Grüße vom Stephan

Code:


function [dataint] = kugel() ;

close all ;
%-----------------------------------------------------
%-- Parameterliste
%-----------------------------------------------------
%                   x  y  z
mittel_punkt_kugel = [5 8 6] ;
radius_kugel =  2 ;
theta   = (pi/180)* 90   ; % winkel über der xy-Ebene
py      = (pi/180)* 90   ; %winkel in der xy-Ebene
wink_90 = (pi/180)* 90   ;
%==============================================
% Die Vektoren u, v die die Ebene aufspannen
% in der der Kreis sich befindet
%==============================================
ux = cos(theta) * cos(py) ;
uy = cos(theta) * sin(py) ;
uz = sin(theta)           ;
%================================
% nun einen Vektor der Senkrecht
% auf u steht und der parallel zu
% der x,y-Ebene bleibt
%================================
vx = cos(py+wink_90) ;
vy = sin(py+wink_90) ;
vz = 0 ;  % wegen parallel zur xy-Ebene
%===============================
% nun die Vektoren u,v bilden
%===============================
u = [ux uy uz] ;
v = [vx vy vz] ;
Radius_Kreis = radius_kugel + 0.1 ;
phi = linspace(0,2*pi, 101) ;
%===============================
%=== Das Bild laden!
%===============================
rgb = double(imread('file2.png'));
X2 = 0.2989 * rgb(:,:,1) + 0.5870 * rgb(:,:,2) + 0.1140 * rgb(:,:,3);
points = zeros(3, length(phi));
for I = 1:length(phi)
   points(:,I) = mittel_punkt_kugel + Radius_Kreis *(sin(phi(I))*u + cos(phi(I))*v) ;
end;
tx = ty = linspace(0,(2* pi),60) ;% Zeitbasis
[phy, bet] = meshgrid (tx, ty);
%===============================
%=== Die Kugel
%===============================
x = mittel_punkt_kugel(1) + (radius_kugel * ((sin(bet) .* cos(phy)))) ;
y = mittel_punkt_kugel(2) + (radius_kugel * ((sin(bet) .* sin(phy)))) ;
z = mittel_punkt_kugel(3) +  radius_kugel * cos(bet) ;
% [sx,sy,sz] =  sphere(80) ;
  %surf(5*sx,5*sy,5*sz) ;
%----------------------------------------------------------------------
%--plotten
%----------------------------------------------------------------------
figure('Name','3D-Raum');
 box ("off");  
 hold on ;
  plot3(points(1,:),points(2,:), points(3,:),'r-*;Kurve;') ;
  % h = surf(x, y, z) ;
  h = surf(x ,y ,z ,        % ,'CData',X2,...
   'FaceColor','texturemap','LineStyle','none');
  %colormap gray;
  set(h,'FaceAlpha',1);
  grid on ;
  title ('Kugel');
  ylabel('y') ;
  xlabel('x') ;
  zlabel('z') ;

 


kreisumkugel.PNG
 Beschreibung:

Download
 Dateiname:  kreisumkugel.PNG
 Dateigröße:  32.81 KB
 Heruntergeladen:  1148 mal


Stephan_II

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.10.2010, 19:02     Titel: Kreis um Kugel die IIte
  Antworten mit Zitat      
Hallo,

Die Darstellung des Kreises um die Kugel herum, mit Verdeckung wenn der Kreis hinter der Kugel verschwindet funktioniert in MatLab richtig.
Das Problem besteht nur in GNU Octave.
(siehe vergleich beider Bilder im Anhang)..
Es ist wohl gnu plot Bug....

Ebenso funktionieren Texturen mit surf nicht, die in Matlab korrekt funktionieren.


Viele Grüße

octave_kreiskugel.png
 Beschreibung:
Darstellung in GNU Octave

Download
 Dateiname:  octave_kreiskugel.png
 Dateigröße:  63.2 KB
 Heruntergeladen:  1175 mal
matlab_kreiskugel.png
 Beschreibung:
Darstellung in MatLab

Download
 Dateiname:  matlab_kreiskugel.png
 Dateigröße:  12.27 KB
 Heruntergeladen:  1235 mal
 
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.