]> git.leopard-lacewing.eu Git - bacc.git/commitdiff
[src] add area.m
authortreecity <schaeferpm@gmail.com>
Sun, 25 Mar 2012 22:01:50 +0000 (00:01 +0200)
committertreecity <schaeferpm@gmail.com>
Sun, 25 Mar 2012 22:01:50 +0000 (00:01 +0200)
src/area.m [new file with mode: 0644]

diff --git a/src/area.m b/src/area.m
new file mode 100644 (file)
index 0000000..f4c657a
--- /dev/null
@@ -0,0 +1,36 @@
+function [area, vector, sites] = area(coordinates, elements,varargin)
+%
+% [area, vector, sites] = area(coordinates, elements)
+%
+% Diese Funktion Berechnet den Flächeninhalt zu jedem Element (area) und 
+% zu jedem Element die Orthogonalen mit Laenge 1, des Weiteren werden auch
+% die Seitenlaengen zu jedem Element gespeichert
+%
+% P.Schaefer
+
+    vector = zeros(size(elements,1),3);
+    area = zeros(size(elements,1),1);
+    sites = zeros(size(elements,1),2);
+    
+%%  Flaecheninhalt und Normalen berechnen
+
+    for i = 1:size(elements,1)
+        % normalized Vector on every triangle
+        tri = elements(i,:);
+        a = (coordinates(tri(2),:)-coordinates(tri(1),:));
+        b = (coordinates(tri(4),:)-coordinates(tri(1),:));
+        N = cross(a',b');
+        
+%         area(i) = norm(N);
+        
+        N = N/norm(N);
+        vector(i,:) = N;
+        area(i) = norm(a) * norm(b);
+        sites(i,:) = [norm(a) norm(b)];
+        
+    end
+
+end
+
+
+