MATLAB: How to determine maximum length in the x and y direction respectively

2dlength

How do you determine the determine the maximum length in x and y direction of an irregular rectangular shape and then also show this by a line to mark this length.. If it was a regular shape i was just going to subtract the max y value from the y min value and so forth. How can can I calculate it from the ccordinates. Below is the image and attached is the text file. Any codes wil be greatly appreciated.
Capture.PNG

Best Answer

  • Try this:
    xy = dlmread('test2-coordinates.txt');
    x = xy(:, 1);
    y = xy(:, 2);
    plot(x, y, 'g*');
    grid on;
    % Find the two points farthest apart
    distances = pdist2(xy, xy);
    maxDistance = max(distances(:))
    [rows, columns] = find(distances == maxDistance)
    index1 = rows(1);
    index2 = rows(2);
    % Draw a line between index1 and index2
    hold on;
    plot([x(index1), x(index2)], [y(index1), y(index2)], 'bo-', 'LineWidth', 2);
    0000 Screenshot.png