Comments (4)
Hi,
I agree, this would be nice!
I had a quick look, but this does not seem that straightforward...
I add the task on my TODO list!
regards
from matgeom.
Here is some code. But it works only if the two line matrices have the same size in the first dimension
clearvars; close all
line1 = [0 -25 -50 0 0 1; 25 25 0 1 1 0.5];
line2 = [0 -50 0 1 0 0; -50 0 50 1 0 2];
a = dot(line1(:,4:6),line1(:,4:6),2);
b = dot(line1(:,4:6),line2(:,4:6),2);
e = dot(line2(:,4:6),line2(:,4:6),2);
den = a.*e-b.*b; % 0, if lines are parallel
r = line1(:,1:3)-line2(:,1:3);
c = dot(line1(:,4:6),r,2);
f = dot(line2(:,4:6),r,2);
s = (b.*f - c.*e)./den;
t = (a.*f - c.*b)./den;
pt1 = line1(:,1:3) + line1(:,4:6).*s;
pt2 = line2(:,1:3) + line2(:,4:6).*t;
figure
xlim([-100, 100]),ylim([-100, 100]),zlim([-100, 100])
hold on; grid on
xlabel x; ylabel y; zlabel z;
drawLine3d(line1,'b')
drawLine3d(line2,'r')
drawPoint3d(pt1);
drawPoint3d(pt2);
view(3)
axis equal
distanceLines3d(line1, line2)
distancePoints3d(pt1, pt2)
from matgeom.
thanks,
I'll add it ASAP.
from matgeom.
Hi,
I have added a fix. You can use the following syntax:
[d, pt1, pt2] = distanceLines3d(line1, line2);
I think the code can be improved , but it seems to work.
regards,
David
from matgeom.
Related Issues (20)
- wrong result in expandPolygon HOT 2
- intersectPlaneMesh for >2 faces per edge? HOT 2
- Feature: expand transformation matrix to 4x4xN ? HOT 6
- add new intersection functions for 3D line segments HOT 7
- drawEdge3d on app opens a new figure HOT 4
- False results of intersectLinePolygon function for HOT 3
- intersectLineCircle fails with several lines and circles HOT 2
- help text for SPH2CART2 and SPH2CART2D has incorrect input order and function name HOT 2
- Orientations (yaw, pitch and roll) are very different for similar 3D points HOT 16
- Documentation on how to cite the work HOT 6
- [Question/ Enhancement] Possibility to dilate a geometry? HOT 2
- Octave install warning about verLessThan.m HOT 4
- getting started on octave HOT 4
- Standardization of the header HOT 20
- Move graphs\grSimplifyBranches_old.m to deprecated\graphs ? HOT 1
- Bugs in intersectEdges.m HOT 2
- Delete changelog.txt(s) ? HOT 4
- Move data files to subfolder or data folder? HOT 1
- clipPolygon3dHP is not fully implemented HOT 6
- medialAxisConvex is not fully implemented
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from matgeom.