Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!

Problem 567. Crossing to Kissing - Untangle the Lines

Created by Ned Gulley

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.


Problem Group

Solution Statistics

13 correct solutions 27 incorrect solutions
Last solution submitted on Oct 31, 2014