MATLAB Answers

How to plot 2 lines and find the coordinates of their intersection?

1.781 views (last 30 days)
Swati Umamaheshwaran
Swati Umamaheshwaran on 17 Sep 2017
Commented: Image Analyst on 5 Jun 2021
I need to plot the lines x+y=3 and x-y= -1 and find their point of intersection. I know that to plot the lines I could use 'fplot'. How can I find the coordinates of their intersection and plot it? Please help.

Answers (5)

Tutku Oztel
Tutku Oztel on 9 Jan 2019
Hello,
I'm sharing the function that I wrote to find the intersection points of two lines with their given slope and constant values:
function [x0 y0] = intersectPoints(m1,m2,b1,b2)
% Insersection point of two lines with known slope and constant
% parameters.
% [x0 y0] = intersectPoints(m1,m2,b1,b1)
% where m's are slope, and b's are constants.
% written by Tutku Öztel in 06.01.2019
x0 = (b2-b1)/(m1-m2); %find the x point
y0 = m1*x0+b1;
end
Late though, but still.. Hope it will be helpful! :)
Tutku

Star Strider
Star Strider on 17 Sep 2017
Another approach:
xymtx = [1 1; 1 -1];
cv = [3; -1];
xy = xymtx\cv; % Calculate Intercept
xint = xy(2); % X-Value Of Intercept
yint = xy(1); % Y-Value Of Intercept
xyind = [xint - 1, xint + 1]'; % X-Values For Plot
xydep = [cv -xyind.*xymtx(:,2)]; % Y-Values For Plot
figure(1)
plot(xyind, xydep(1,:), xyind, xydep(2,:), '-r')
hold on
plot(xint, yint, 'pg', 'MarkerFaceColor','g', 'MarkerSize',10)
hold off
This is straightforward and relatively simple linear algebra. The ‘xydep’ variable calculates the y-values corresponding to the arbitrary values in ‘xydep’, and is the result of solving ‘[X + Y] = C’ for ‘Y’.

Simon Kölbl
Simon Kölbl on 17 Sep 2017
I would do it like this:
% define x Axis and evaluate functions
x_points = -5:0.1:5;
function1 = -x+1;
function2 = x+1;
index_intersection = find(function1 == function2);
x_value_intersection = x_points(index_intersection);
y_value_intersection = function1(index_intersection);
% plot functions and intersection point:
curve1 = plot(x_points, function1);
hold on
curve2 = plot(x_points, function2);
intersection = plot(x_value_intersection, y_value_intersection,...
'Marker', '+', 'MarkerSize', 6, 'Color', 'r');
  2 Comments
Image Analyst
Image Analyst on 5 Jun 2021
@Cyril Okhio, I think @Simon Kölbl meant this:
clc; % Clear command window.
fprintf('Running %s.m ...\n', mfilename);
clear; % Delete all variables.
close all; % Close all figure windows except those created by imtool.
workspace; % Make sure the workspace panel is showing.
% Define x Axis and evaluate functions
x_points = -5:0.1:5;
function1 = -x_points+1;
function2 = x_points+1;
index_intersection = find(function1 == function2);
x_value_intersection = x_points(index_intersection)
y_value_intersection = function1(index_intersection)
% Plot functions and intersection point:
curve1 = plot(x_points, function1);
hold on
curve2 = plot(x_points, function2);
intersection = plot(x_value_intersection, y_value_intersection,...
'Marker', '+', 'MarkerSize', 20, 'Color', 'r', 'LineWidth', 2);
grid on
caption = sprintf('At intersection, x = %f, y = %f', x_value_intersection, y_value_intersection);
fontSize = 15;
title(caption, 'FontSize', 15);
xlabel('x', 'FontSize', 15);
ylabel('y', 'FontSize', 15);
fprintf('Done running %s.m\n', mfilename);

Sign in to comment.


MOSAB YOUSIF
MOSAB YOUSIF on 5 Jun 2021
% define x Axis and evaluate functions
x = -5:0.1:5;
function1 = -x+1;
function2 = x+1;
index_intersection = find(function1 == function2);
x_value_intersection = x(index_intersection);
y_value_intersection = function1(index_intersection);
% plot functions and intersection point:
curve1 = plot(x, function1);
hold on
curve2 = plot(x, function2);
intersection = plot(x_value_intersection, y_value_intersection,...
'Marker', '+', 'MarkerSize', 6, 'Color', 'r');

Matt J
Matt J on 5 Jun 2021
Edited: Matt J on 5 Jun 2021
Using this File Exchange submission,
xy=linexlines2D( [1,1,-3].' , [1,-1,1] ); %the intersection point
hold on
fimplicit(@(x,y) x+y-3);
fimplicit(@(x,y) x-y+1);
plot(xy(1),xy(2),'or','MarkerFaceColor','r')
hold off

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by