A theorem on integers as coordinates
Introduction
The points in a plane with integers as coordinates are called lattice points. In this article is described the origin of a theorem concerning those special points. A program in Python 3.2 gives a fast solution for a particular case. Finally, it is stated the announced theorem.
Origin of the theorem
The following geometric problem gave the central idea for an interesting and curious result.
Given a straight line segment with end potints A and B whose coordinates are known, determine the coordinates of a point C which is the third vertex of an isosceles right triangle
Origin of the theorem
The following geometric problem gave the central idea for an interesting and curious result.
Given a straight line segment with end potints A and B whose coordinates are known, determine the coordinates of a point C which is the third vertex of an isosceles right triangle
To solve this problem, let's draw the straight line BC perpendicular to the straight line AB and the circle with center in B and radius AB. This circle will cut the straight line BC in two points, one of which will be C.
An alternative way to do this is to consider the orthogonal vectors
A→B and B→C whose norms are equal and their scalar product is equal to zero. This leads to the following equations:
|(c - a, d - b) . (x – c, y – d)| = 0
|(c – a, d - b)| = |(x – c, y – d)|
Solving for x and y, the following results are obtained:
Solution (1): x = b + c – d, y = c – a + d
Solution (2): x = c – b + d, y = a – c + d
Surprisingly (?) if the original coordinates are integers, the coordinates of point C are integers too.
Vectors B→A and B→C’ could be considered too, and this would lead to new solutions. C' being symmetrical of C, with respect to B.
A program as the following, in Python 3.2 leads quickly to the solutions we are looking for.
The program will be used for the points
A = (-1, 2) and B = (2, 3).
print("third vertex of isosceles rectangular triangle")
print("given vertices:(a,b),(c,d)")
print("write successively the values a,b,c,d")
a=float(input())
b=float(input())
c=float(input())
d=float(input())
print("solution(1)",'(',b+c-d,',',c-a+d,')')
print("solution(2)",'(',c-b+d,',',a-c+d,')')
print("solution(3)",'(',d+a-b,',',a-c+b,')')
print("solution(4)",'(',a-d+b,',',c-a+b,')')
Running the program:
write successively the values a,b,c,d
-1
2
2
3
solution(1) ( 1.0 , 6.0 )
solution(2) ( 3.0 , 0.0 )
solution(3) ( 0.0 , -1.0 )
solution(4) ( -2.0 , 5.0 )
Graphically, the results are:
The points obtained are,
(1, 6), (3, 0), (0, -1), (-2, 5)
From results as the former, it can be derived the following theorem:
If the end points of a segment of a straight line, A, B, have integers as coordinates, then the vertices of the squares having segment AB as one of their sides have also integer coordinates.
This result can be extended to all of the squares in the plane, which are connected with the two squares related with the segment AB.
To solve this problem, let's draw the straight line BC perpendicular to the straight line AB and the circle with center in B and radius AB. This circle will cut the straight line BC in two points, one of which will be C.
Solution (2): x = c – b + d, y = a – c + d
Vectors B→A and B→C’ could be considered too, and this would lead to new solutions. C' being symmetrical of C, with respect to B.
A program as the following, in Python 3.2 leads quickly to the solutions we are looking for.
The program will be used for the points
A = (-1, 2) and B = (2, 3).
Graphically, the results are:
The points obtained are,
(1, 6), (3, 0), (0, -1), (-2, 5)
From results as the former, it can be derived the following theorem:
If the end points of a segment of a straight line, A, B, have integers as coordinates, then the vertices of the squares having segment AB as one of their sides have also integer coordinates.
This result can be extended to all of the squares in the plane, which are connected with the two squares related with the segment AB.
No hay comentarios:
Publicar un comentario