|
|
Mittelpunkt von Kreis berechnen |
|
Roger |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.01.2009, 02:32
Titel: Mittelpunkt von Kreis berechnen
|
 |
|
 |
|
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
|
 |
Beiträge: 1
|
 |
|
 |
Anmeldedatum: 22.01.09
|
 |
|
 |
Wohnort: Münster
|
 |
|
 |
Version: R2007a
|
 |
|
|
 |
|
Verfasst am: 22.01.2009, 02:37
Titel: neuer member
|
 |
bin nun auch registriert
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| RSS
Hosted by:
Copyright © 2007 - 2025
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.
|
|