% Dominic Kohler
% Aufgabe 1527 - Bauteil
function [gp,gq,gr,n] = bauteil(P,Q,R)
% Ausgabeformat: jeweils 1. Zeile: Stützpunkt, 2. Zeile Richtungs- bzw. Normalenvektor
gp = sing(P, 1);
gq = sing(Q, 1);
gr = sing(R, 1);
X = [P;Q;R];
n = sing(X, 2);
function g = sing(P, arg)
% Mittelpunktberechnung
mp = mean(P);
% Matrix (p-mp) bauen
P = P - ones(size(P,1),1)*mp;
% Singulärwertzerlegung
[U,S,V] = svd(P);
% Nach Typ unterscheiden
if (arg == 1)
% arg=1: Ausgleichsgerade, Richtungsvektor ist erster Vektor in V
g = [mp; (V(:,1))'];
else
% arg=2: Ausgleichsebene, Normalenvektor ist letzter Vektor in V
g = [mp; (V(:,3))'];
end
(Autor: Dominic Kohler)
|
automatisch erstellt
am 30. 4. 2010 |