Nun habe ich aber den Verdacht, dass die 4 Koordinaten nicht in einer Ebene liegen.
Um das zu checken, hab ich mir folgendes geschrieben
Code:
inEbene=0;
nichtInEbene=0;
for i=1:length(FlaecheQ)
P1=FlaecheQ(i,1);
P2=FlaecheQ(i,2);
P3=FlaecheQ(i,3);
P4=FlaecheQ(i,4);
for i=1:length(Knoten) if Knoten(i,1)==P1
K1=Knoten(i, 2:4);
end if Knoten(i,1)==P2
K2=Knoten(i, 2:4);
end if Knoten(i,1)==P3
K3=Knoten(i, 2:4);
end if Knoten(i,1)==P4
K4=Knoten(i, 2:4);
end end
normal1 = cross(K1-K2, K1-K3);
normal2 = cross(K1-K4, K1-K3);
teiler1 = normal1(1)/normal2(1);
teiler2 = normal1(2)/normal2(2);
teiler3 = normal1(3)/normal2(3);
ifisequal(teiler1, teiler2, teiler3)==1
inEbene=inEbene+1;
else
nichtInEbene=nichtInEbene+1;
end end
inEbene
nichtInEbene
Er sucht sich die richtigen Koordinaten raus. Allerdings gibt er mir aus, das alle 4 Punkte, die eigentlich eine Fläche definieren sollten, nicht in einer Ebene liegen. Das finde ich ziemlich .
Kann es sein, dass ich mich bei dem zweiten Teil des Skripts (Überprüfen, ob 4 Punkte in einer Ebene liegen) vertan habe?
Ich glaube nicht, dass es an einem Rundungsfehler liegt.
Die Daten für den ersten Durchgang der Schleife sind:
Hallo HaggeL,
sehe ich das gerade richtig das du keine Lust hast händisch zu prüfen ob deine Punkte in einer Ebene liegen und wir daher deinen Code prophylaktisch debuggen sollen?
Gruß Schrank
Ob der Code grundsätzlich funktioniert, habe ich mit einfachen Zahlen schon getestet.
Ich habe auch schon eine Ebene in Gleichungsform dargestellt und wollte den 4. Punkt einzusetzen (händisch). Allerdings sind die Terme, die da rauskommen, nicht gerade taschenrechnerfreundlich.
Ich wollte bloss wissen, ob jemand Erfahrung mit deartigen Datensätzen hat. Vielleicht hab ich ja irgendein Detail aus unwissenheit übersehen. Z.B. das bei solchen Zahlenwerten der Rundungsfehler viel ausmacht (was ich mir jetzt nicht gerade vorstellen kann).
Gruß HaggeL
_________________
Nimm das Leben nicht zu ernst, du kommst niemals lebend raus!
Hab die Lage der Punkte gerade nochmal mit einer Determinante getestet und es kommen Werte mit e-4 raus.
Gibts einen groben Richtwert, ab wann man Näherungsweise von 0 ausgehen kann?
Gruß HaggeL
PS: Mein Problem hat sich gelöst. Hatte im Export-Skript eine } zu viel geschrieben. D.h. das Zielprogramm erkennt die Flächen jetzt als Ebenen und alles ist wunderbar _________________
Nimm das Leben nicht zu ernst, du kommst niemals lebend raus!
Nimm das Leben nicht zu ernst, du kommst niemals lebend raus!
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
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.