From 4f2b7215a18576fe7026dc5eb6207bc3e5cd5ecc Mon Sep 17 00:00:00 2001 From: dlegland Date: Mon, 2 Aug 2021 12:04:42 +0200 Subject: [PATCH] meshes3d: add demos for intersectLineMesh3d and intersectPlaneMesh --- demos/meshes3d/demoIntersectLineMesh3d.m | 56 ++++++ demos/meshes3d/demoIntersectPlaneMesh.m | 63 ++++++ .../html/demoIntersectLineMesh3d.html | 173 ++++++++++++++++ .../meshes3d/html/demoIntersectLineMesh3d.png | Bin 0 -> 3112 bytes .../html/demoIntersectLineMesh3d_01.png | Bin 0 -> 10728 bytes .../html/demoIntersectLineMesh3d_02.png | Bin 0 -> 17341 bytes .../html/demoIntersectLineMesh3d_03.png | Bin 0 -> 17980 bytes .../meshes3d/html/demoIntersectPlaneMesh.html | 187 ++++++++++++++++++ .../meshes3d/html/demoIntersectPlaneMesh.png | Bin 0 -> 3082 bytes .../html/demoIntersectPlaneMesh_01.png | Bin 0 -> 10728 bytes .../html/demoIntersectPlaneMesh_02.png | Bin 0 -> 9065 bytes .../html/demoIntersectPlaneMesh_03.png | Bin 0 -> 9260 bytes 12 files changed, 479 insertions(+) create mode 100644 demos/meshes3d/demoIntersectLineMesh3d.m create mode 100644 demos/meshes3d/demoIntersectPlaneMesh.m create mode 100644 demos/meshes3d/html/demoIntersectLineMesh3d.html create mode 100644 demos/meshes3d/html/demoIntersectLineMesh3d.png create mode 100644 demos/meshes3d/html/demoIntersectLineMesh3d_01.png create mode 100644 demos/meshes3d/html/demoIntersectLineMesh3d_02.png create mode 100644 demos/meshes3d/html/demoIntersectLineMesh3d_03.png create mode 100644 demos/meshes3d/html/demoIntersectPlaneMesh.html create mode 100644 demos/meshes3d/html/demoIntersectPlaneMesh.png create mode 100644 demos/meshes3d/html/demoIntersectPlaneMesh_01.png create mode 100644 demos/meshes3d/html/demoIntersectPlaneMesh_02.png create mode 100644 demos/meshes3d/html/demoIntersectPlaneMesh_03.png diff --git a/demos/meshes3d/demoIntersectLineMesh3d.m b/demos/meshes3d/demoIntersectLineMesh3d.m new file mode 100644 index 00000000..854fcb79 --- /dev/null +++ b/demos/meshes3d/demoIntersectLineMesh3d.m @@ -0,0 +1,56 @@ +% Demonstration of the intersectLineMesh3d function. +% +% output = demoIntersectLineMesh3d(input) +% +% Example +% demoIntersectLineMesh3d +% +% See also +% + +% ------ +% Author: David Legland +% e-mail: david.legland@inrae.fr +% INRAE - BIA Research Unit - BIBS Platform (Nantes) +% Created: 2021-08-02, using Matlab 9.10.0.1684407 (R2021a) Update 3 +% Copyright 2021 INRAE. + + +%% Input mesh + +% create the mesh +[v, f] = createOctahedron; +v = v * 10; + +% draw the mesh +figure; hold on; axis equal; view(3); +axis([-10 10 -10 10 -10 10]); +drawMesh(v, f, 'g'); + + +%% Input lines +% create a collection of parallel lines + +% line direction is mostly horizontal +vl = [3 2 1]; + +% choose several origins for lines +ly = -8:4:8; +lz = -8:4:8; +[y0, z0] = meshgrid(ly, lz); +x0 = zeros(size(y0)); + +% create the lines +lines = [x0(:) y0(:) z0(:) repmat(vl, numel(y0), 1)]; + +% draw the lines +drawLine3d(lines, 'b'); + + +%% Compute intersections + +% compute intersections +inters = intersectLineMesh3d(lines, v, f); + +% draw intersection points +drawPoint3d(inters, 'ko'); diff --git a/demos/meshes3d/demoIntersectPlaneMesh.m b/demos/meshes3d/demoIntersectPlaneMesh.m new file mode 100644 index 00000000..fe093969 --- /dev/null +++ b/demos/meshes3d/demoIntersectPlaneMesh.m @@ -0,0 +1,63 @@ +% Demonstration of the intersectPlaneMesh function. +% +% output = demoIntersectPlaneMesh(input) +% +% Example +% demoIntersectPlaneMesh +% +% See also +% + +% ------ +% Author: David Legland +% e-mail: david.legland@inrae.fr +% INRAE - BIA Research Unit - BIBS Platform (Nantes) +% Created: 2021-08-02, using Matlab 9.10.0.1684407 (R2021a) Update 3 +% Copyright 2021 INRAE. + + +%% Input mesh + +% create the mesh +[v, f] = createOctahedron; +v = v * 10; + +% draw the mesh +figure; hold on; axis equal; view(3); +axis([-10 10 -10 10 -10 10]); +drawMesh(v, f, 'g'); + + +%% Input planes +% create a collection of parallel planes + +% planedirection is mostly horizontal +normal = [2 3 8]; + +% choose several origins for planes +origins = [zeros(5, 2) (-8:4:8)']; +nPlanes = size(origins, 1); + +% create the planes +planes = zeros(nPlanes, 9); +for i = 1:nPlanes + planes(i,:) = createPlane(origins(i,:), normal); +end + +% draw the lines +drawPlane3d(planes, 'FaceColor', 'blue', 'FaceAlpha', .4); + + +%% Compute intersections + +% allocate array +polySets = cell(1, nPlanes); + +% compute intersections +for i = 1:nPlanes + polys = intersectPlaneMesh(planes(i,:), v, f); + polySets{i} = polys; +end + +% draw intersection points +drawPolygon3d(polySets, 'Color', 'magenta', 'LineWidth', 2); diff --git a/demos/meshes3d/html/demoIntersectLineMesh3d.html b/demos/meshes3d/html/demoIntersectLineMesh3d.html new file mode 100644 index 00000000..2da07d36 --- /dev/null +++ b/demos/meshes3d/html/demoIntersectLineMesh3d.html @@ -0,0 +1,173 @@ + + + + + demoIntersectLineMesh3d

Contents

% Demonstration of the intersectLineMesh3d function.
+%
+%   output = demoIntersectLineMesh3d(input)
+%
+%   Example
+%   demoIntersectLineMesh3d
+%
+%   See also
+%
+
+% ------
+% Author: David Legland
+% e-mail: david.legland@inrae.fr
+% INRAE - BIA Research Unit - BIBS Platform (Nantes)
+% Created: 2021-08-02,    using Matlab 9.10.0.1684407 (R2021a) Update 3
+% Copyright 2021 INRAE.
+

Input mesh

% create the mesh
+[v, f] = createOctahedron;
+v = v * 10;
+
+% draw the mesh
+figure; hold on; axis equal; view(3);
+axis([-10 10 -10 10 -10 10]);
+drawMesh(v, f, 'g');
+

Input lines

create a collection of parallel lines

% line direction is mostly horizontal
+vl = [3 2 1];
+
+% choose several origins for lines
+ly = -8:4:8;
+lz = -8:4:8;
+[y0, z0] = meshgrid(ly, lz);
+x0 = zeros(size(y0));
+
+% create the lines
+lines = [x0(:) y0(:) z0(:) repmat(vl, numel(y0), 1)];
+
+% draw the lines
+drawLine3d(lines, 'b');
+

Compute intersections

% compute intersections
+inters = intersectLineMesh3d(lines, v, f);
+
+% draw intersection points
+drawPoint3d(inters, 'ko');
+
\ No newline at end of file diff --git a/demos/meshes3d/html/demoIntersectLineMesh3d.png b/demos/meshes3d/html/demoIntersectLineMesh3d.png new file mode 100644 index 0000000000000000000000000000000000000000..8bf2c1b5018af6a02dc89152d0e93913e64bad3a GIT binary patch literal 3112 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

+`7ER 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 + + + demoIntersectPlaneMesh

Contents

% Demonstration of the intersectPlaneMesh function.
+%
+%   output = demoIntersectPlaneMesh(input)
+%
+%   Example
+%   demoIntersectPlaneMesh
+%
+%   See also
+%
+
+% ------
+% Author: David Legland
+% e-mail: david.legland@inrae.fr
+% INRAE - BIA Research Unit - BIBS Platform (Nantes)
+% Created: 2021-08-02,    using Matlab 9.10.0.1684407 (R2021a) Update 3
+% Copyright 2021 INRAE.
+

Input mesh

% create the mesh
+[v, f] = createOctahedron;
+v = v * 10;
+
+% draw the mesh
+figure; hold on; axis equal; view(3);
+axis([-10 10 -10 10 -10 10]);
+drawMesh(v, f, 'g');
+

Input planes

create a collection of parallel planes

% planedirection is mostly horizontal
+normal = [2 3 8];
+
+% choose several origins for planes
+origins = [zeros(5, 2) (-8:4:8)'];
+nPlanes = size(origins, 1);
+
+% create the planes
+planes = zeros(nPlanes, 9);
+for i = 1:nPlanes
+    planes(i,:) = createPlane(origins(i,:), normal);
+end
+
+% draw the lines
+drawPlane3d(planes, 'FaceColor', 'blue', 'FaceAlpha', .4);
+

Compute intersections

% allocate array
+polySets = cell(1, nPlanes);
+
+% compute intersections
+for i = 1:nPlanes
+    polys = intersectPlaneMesh(planes(i,:), v, f);
+    polySets{i} = polys;
+end
+
+% draw intersection points
+drawPolygon3d(polySets, 'Color', 'magenta', 'LineWidth', 2);
+
\ No newline at end of file diff --git a/demos/meshes3d/html/demoIntersectPlaneMesh.png b/demos/meshes3d/html/demoIntersectPlaneMesh.png new file mode 100644 index 0000000000000000000000000000000000000000..f6f91b4e3a180277bbf7a8fd5b094b4577ddfe7a GIT binary patch literal 3082 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 YUqg6XKZY77!vFvP07*qoM6N<$f~7|QumAu6 literal 0 HcmV?d00001 diff --git a/demos/meshes3d/html/demoIntersectPlaneMesh_01.png b/demos/meshes3d/html/demoIntersectPlaneMesh_01.png new file mode 100644 index 0000000000000000000000000000000000000000..8b1c239dbbdc961306f1a3bf855b05f4b3b8adcd GIT binary patch literal 10728 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

+`7ER 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 literal 0 HcmV?d00001