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

Schnittpunkt Gerade-Kugeloberfläche

 

gplessm
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 26.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.06.2009, 08:19     Titel: Schnittpunkt Gerade-Kugeloberfläche
  Antworten mit Zitat      
Ein Hallo an die Forumsgemeinschaft.

Zunächst ein riesen lob an das Forum und seine Mitglieder, viele Beiträge haben mir schon sehr geholfen.

Nun zu meiner Frage. Gegeben sind zwei Punkte im 3-D Raum, durch die eine Gerade definiert ist und der Radius einer Kugeloberfläche, deren Mittelpunkt im Koordinatenursprung liegt. Ich will nun den/die Schnittpunkt(e) berechnen. Ich habe mit sphere eine Kugeloberfläche erstellt und mit den geg. Punkten eine Gerade. Jedoch kann ich mit meinem Matlab Skript keinen Schnittpunkt finden.
Die einzige Erklärung, die mir dazu einfiel war, dass die Gerade, die als Punktmenge definiert ist, gewisse Abstände zwische den Punkten hat und genau dazwischen die Kugeloberfläche liegt. Ich hab versucht durch Verringern des Abstandes diese Fehlerquelle zu umgehen, jedoch ohne erfolg.

Ich poste hier mal meinen Quellcode, wenn jemand ne Idee hat und mir helfen kann, wäre ich ihm sehr verbunden.

Code:
P1=[0 0 0];
P2=[1 2 3];
L=[0 6 0.0005];

l=(L(1):L(3):L(2));
x = P1(1) + l*(P2(1) - P1(1));
y = P1(2) + l*(P2(2) - P1(2));
z = P1(3) + l*(P2(3) - P1(3));
plot3(x,y,z);

hold on

r=10;

[X,Y,Z]=sphere(1000);
X1=r.*X;
Y1=r.*Y;
Z1=r.*Z;
mesh(X1,Y1,Z1)

for k=1:length(X1)
    for n=1:length(x)
        if x(n)==X1(k)&&y(n)==Y1(k)&&z(n)==Z1(k)
% Die folgende Zeile ist der Versuch, das "Abstandsproblem" anderweitig zu lösen
%((x(n))<X1(k)<(x(n)+0.0005))&&(y(n)<Y1(k)<(y(n)+0.0005))&&(z(n)<Z1(k)<(z(n)+0.0005))
            x_sp=x(n);
            y_sp=y(n);
            z_sp=z(n);
        end
    end
end
           
plot3(x_sp,y_sp,z_sp,'x')

axis equal
hold off


Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 26.06.2009, 10:44     Titel:
  Antworten mit Zitat      
X,Y und Z sind nach run bei mir nxn-Matritzen...
length gibt dir aber nur die Länge der grössten Dimension wieder.
-> ich denke, sphere liefert die Koordinaten in anderer Form als du es dir vorstellst

ausserdem würdest du ältere Schnittpunkte überschreiben...
Private Nachricht senden Benutzer-Profile anzeigen
 
gplessm
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 26.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.06.2009, 08:32     Titel:
  Antworten mit Zitat      
Hallo, erstmal danke für deine antwort.
Hast du villeicht ne geschicktere Idee, wie ich die Kugeloberfläche bzw. die Gerade darstellen kann. Deine Anmerkungen zeigen, dass das prog so nicht so sinnvoll ist.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 27.06.2009, 10:40     Titel:
  Antworten mit Zitat      
Naja, ich bearbeite grade auch so ein Problem, der Algo ist mit der zweiten Zeile schon okay.
Ich wollte nur darauf hinaus, dass du dir Gedanken machen solltest über deine Kugel. Ich hab die mir selber kreiert, weil ich mit sphere nicht klar kam (ich nutze auch nur ne Halbkugeloberfläche)
also for x, for y, for z
if (x^2+y^2+z^2<r^2) ...
Private Nachricht senden Benutzer-Profile anzeigen
 
gplessm
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 26.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2009, 07:35     Titel:
  Antworten mit Zitat      
Hallo,

ich kann mir nur grob vorstellen, wo mein problem mit der Kugeloberfläche besteht, nämlich in der form der matrizen für x,y,z. kannst du mir vielleicht mal deine version für die halbkugeloberfläche zeigen? das könnte mir sicherlich weiterhelfen.

grüße
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.