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

Mittelpunkt von Kreis berechnen

 

Roger

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2009, 02:32     Titel: Mittelpunkt von Kreis berechnen
  Antworten mit Zitat      
Hallo,

ich muss im Studium zwangsweise mit Matlab arbeiten habe aber keinen Plan. Ich hoffe ich bekomme hier Hilfe.

Ich habe einen Kreis auf dem ich drei Punkte mit den Koordinaten x,y,z kenne, nun soll ich den Mittelpunkt des Kreises berechnen. Wie geht das?

Ich hab dazu folgendes Skript von meinem Dozenten bekommen, das allerdings so nicht läuft. Wäre für jede Hilfe dankbar.

Das "nanweg" Skript hab ich leider nicht (falls man es braucht). Movav hätte ich , weiß aber nicht ob es funktioniert.

% Gegeben sind drei Punkte auf der Oberfläche einer Kugel. Diese drei
% Punkte definieren eine Ebene, die die Kugel schneidet. Der entstehende
% Schnittkreis ist gleichzeitig der Umkreis des aus den drei Punkten
% gebildeten Dreiecks.
% Mit dieser Funktion werden die Koordinaten des Mittelpunktes des
% Schnittkreises berechnet.
% Eingabe: Koordinaten der drei Punkte P1,P2,P3 als Spaltenvektoren.
% Ausgabe: mitte - Mittelpunkt des Kreises
% nv - Normalenvektor auf den Kreis
function [mitte,nv]=mitte_schnittkreis_kugel(p1,p2,p3)
%
% Erstellen der Vektoren a,b,c für die Rechnung aus den Punkten; a und b spannen
% die Schnittebene auf; p1 ist der Aufpunkt für die ganze Rechnung
a=nanweg(p2-p1);
b=nanweg(p3-p1);
c=a-b;%=p2-p3
%
a=movav(a,2);
b=movav(b,2);
c=movav(c,2);
% % Der Winkel alpha zwischen den die Ebene aufspannenden Vektoren a und b
% alpha=winkel(a,b);
% c_betrag=vektor_betrag(c);
% % Radius r des Schnittkreises
% r=c_betrag./2./sin(alpha);
%
% Hilfsnormalenvektor
a0=vek_normi(a);
b0=vek_normi(b);
%
nv=cross(a0,b0);
nv=vek_normi(nv);
%
% Vektoren, die senkrecht auf den Dreiecksseiten stehen und durch den
% Mittelpunkt des Kreises gehen
d=cross(nv,a0);
e=cross(b0,nv);
% d1=cross(nv,a);
% e1=cross(b,nv);
%
% Ergebnis des Gleichungssystems
% M=p1+a/2+lamda*(nv x a)
% M=p1+b/2+mue*(b x nv)
% ergibt das Gleichungssystem
% lamda*(nv x a) - mue*(b x nv)=(b-a)/2
bb=(b-a)./2;
%
% Lösen des Gleichungssystems
[ld,ldd]=size(d);
for h=1:ld
A_temp=[d(h,:)',e(h,:)'];
x(h,:)=A_temp\bb(h,:)';
end
%
% Erstellen des Ortsvektors zum Mittelpunkt des Kreises
tmp_d(:,1)=x(:,1).*d(:,1);
tmp_d(:,2)=x(:,1).*d(:,2);
tmp_d(:,3)=x(:,1).*d(:,3);
%
mitte=p1+a./2+tmp_d;


vielen Dank


Roger
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 22.01.09
Wohnort: Münster
Version: R2007a
     Beitrag Verfasst am: 22.01.2009, 02:37     Titel: neuer member
  Antworten mit Zitat      
bin nun auch registriert Very Happy
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.