Proving Right Angle Using Cartesian Coordinates

  • Thread starter Thread starter UrbanXrisis
  • Start date Start date
  • Tags Tags
    Angle Formula
AI Thread Summary
To determine if two intersecting lines create a right angle using Cartesian coordinates, one can analyze their slopes. Perpendicular lines have slopes that are negative reciprocals, meaning if one slope is zero, the other must be undefined for the lines to be perpendicular. An alternative method involves using the dot product of the direction vectors derived from the coordinates; if the dot product equals zero, the lines are perpendicular. For programming in Java, checking the product of the slopes (m1 * m2 = -1) can efficiently confirm perpendicularity. Understanding these relationships is crucial for applications in graphics development and programming.
UrbanXrisis
Messages
1,192
Reaction score
1
okay, I looked around in google and I'm not getting what I need. What is the formula to prove if two intersecting lines create a right angle or not? Having Cartesian coordinates only.
 
Physics news on Phys.org
There are a couple of ways to do it. The first that occurs to me is to look at the slopes. What do you know about the slopes of perpendicular lines?
 
negative reciprocal, however, if the slope of a coordinate was 0, then the reciprocal of that would be undefined
 
Sorry to be picky, but a "coordinate" has no slope.

If the slope of a line is 0, what does that tell you about the line? What if the slope of the line is undefined? And how are those two lines related?
 
you see, I'm writing a Java program, and I would give me a divide by zero error if I tried to find the slope that was vertical. But I have an idea, I would just say that if the 2 x's are equal, then skip to find the slope of the second line. If the slope of that line is zero, then it creates a right angle.

thanks for the help
 
You're welcome, and your idea will work just fine. I've used that many times. :)
 
You could test the dot product. If zero, the lines are perpendicular.

The dot product is just a variation on the cosine difference identity.

\frac{x_1 * x_2 + y_1 * y_2+ z_1 * z_2}{v_1*v_2} = cos \theta

with \theta being the angle between the two lines.
The denominator of the left hand side is the product of the norms of the two vectors. If you only need to find out whether the lines are perpendicular, you don't even need to worry about the denominator.
The x_1, y_1, z_1, etc. are Cartesian coordinates for the vector (v_1, etc)
The cosine of a 90 degree angle is zero.


If you're only working in two dimensions, just leave the z's out (z_1 and z_2 are both equal to zero when working in two dimensions)
 
say your 2 lines are represented by 2 equations.

y=m_1 x + b_1

y=m_2 x + b_2

the slope m_1= \frac{y_1}{x_1}
and the same goes for m_2

if x_1x_2+y_1y_2=0 then the lines are perpendicular.

the only case where there's a problem is when one of your lines is zero. However in that case if the slope of the other line is anything but undefined then it's obvious it isn't perpendicular.

If your question was finding a perpendicular line given the first then the negative reciprocal of the slope should suit you fine.
 
Bob's vector method may look overly complicated for this one but it is the most attractive one and atleast needs to be practiced if one is into programming. Higher level graphics development depends largely on vector methods and their matrix representations.

-- AI
 
  • #10
UrbanXrisis said:
you see, I'm writing a Java program, and I would give me a divide by zero error if I tried to find the slope that was vertical. But I have an idea, I would just say that if the 2 x's are equal, then skip to find the slope of the second line. If the slope of that line is zero, then it creates a right angle.

thanks for the help

Hi UrbanXrisis

If you are writing a method in Java to do this calculation, I think you should use the fact that the ratio of the gradients of two intersecting lines is negative if the lines are perpendicular to each other.

If you have your Cartesian coordinates, you can obtain both gradients, but your method will need to have some special circumstances, like: -

1. if one of the lines have a gradient of infinity (vertical line), then the lines will be perpendicular if the other line has nought gradient.

...however, you will have other special circumstances if you write your Java method this way. I've thought of one way which might be helpful to you.

If you know that the ratio of the gradients of 2 perpendicular lines is negative, you will quickly notice that the absolute values of the two gradients should be equal !

If line L1 (gradient = m1) is perpendicular to line L2 (gradient = m2), then m1/m2 = -1 and |m1| = |m2|. So, you can test the equality of the absolute values of the gradients first. If they match, you can test whether one of them is negative, and if one of them is negative, the lines are perpendicular.

There is a built-in function in Java which you can use to determine the absolute values of a real number: -
Code:
Math.abs(x)
 
  • #11
Damn I didn't think about that.

If you multiply m1 by m2 and get -1 then your lines are perpendicular.
 
  • #12
Fulham,
If m1 = 0, what is m2? and does m1*m2=-1 help. Read the above few post, where the author of the post has raised this question.

The formula u derived earlier was much better than this (as far as computational overhead is concerned), can u see why? Your earlier formula is closely related even to the vector method and i could even say the results are identical.

Ameed Khan,
Think again , it should m1m2 = -1 and not m1/m2 = -1.

-- AI
 
  • #13
All my apologies. I made a mistake in the formula, and consequently, the explanation became totally untrue. You are right TenaliRaman, the formula should be : -
(m1)*(m2) = -1

I had this in my head, but my mind was quicker than my hands, so I mistyped the formula. My apologies for that.
 
  • #14
Its ok! I have written 3*4=7 many times , so u are doing really good!

-- AI
 
Back
Top