Problem 567. Crossing to Kissing - Untangle the Lines
Turn lines that cross into lines that kiss.
You will be given two lines that cross at some point. Your job is to untangle them in the following way. Imagine two line segments, L1 and L2. L1 goes from (0,0) to (2,2). L2 goes from (0,1) to (2,1). We can specify them like so.
L1 = [0 0; 2 2]
L2 = [0 1; 2 1]
We want to transform these into two non-crossing segmented lines that look the same when plotted. To do this, we need to introduce a new point in each line. Both lines share this point, so now they "kiss" instead of crossing.
L3 = [0 0; 1 1; 2 1]
L4 = [0 1; 1 1; 2 2]
* L1 * L4 / / / / L2 *--/--* L2 L4 *--*--* L3 / / / / L1 * L3 *
Your function should take the form
[L3,L4] = cross2kiss(L1,L2)
The lines L3 and L4 should be ordered by the y coordinate of their first point. So in the case above, the first point in L3 is [0 0], so it comes first.
Solution Stats
Problem Comments
-
1 Comment
Technically, L1 & L2 are line segments, and L3 & L4 are polylines.
Solution Comments
Show commentsGroup

Computational Geometry II
- 20 Problems
- 18 Finishers
- Dots in a Diamond
- Property dispute!
- Shifted Hexagonal Tiling Dots in a Circle
- Hexagonal Tiling Dots in a Circle
- Dots in a Sphere
- Triangular Tiling Dots in a Circle
- Beads on a Necklace (Convex Hulls)
- Minimum Distance between two N-sided Polygons
- Minimum Distance Point to Segment
- Dots in a Circle
- Edges of a n-dimensional Hypercube
- Volume of a Simplex
- Find the optimal shape to bring the maximum product by a given perimeter
- Number of lattice points within a circle
- Points on a circle.
- Perimeter
- Geometry: Find Circle given 3 Non-Colinear Points
- Points on a Sphere
- Volume difference between Ellipsoid and Sphere
- Property dispute!
- Crossing to Kissing - Untangle the Lines
Problem Recent Solvers31
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!