New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Angle Graph Method for High School Geometry #22644
Comments
For those rusty but interested: do you mean cases like these? |
@sylee957 , What is the meaning of 0 in |
The ‘(a, b, c): 0’ should mean that ‘c’ is the ‘0’th bisector of ‘a’ and ‘b’ |
@sylee957 , thanks -- so imagine lines crossing at a point and you are indicating in which direction the bisector eminates. From what you have in the example above it looks like the "0" one is the one in the same direction as the oriented lines |
I don’t have computer now to verify this, but ‘cd’ could be changed to ‘dc’. The angle should be defined as counterclockwise angle from the start oriented line to the end oriented line. |
>>> A={tuple(i):j for i,j in (('ba',rad(50)),('dc',rad(80)),('ae',pi/2),
... ('de',pi/2))}
>>> B={}
>>> d, s = angle_graph(V,A,B)
>>> deg(angle_between(d, 'b', 'c', 1, 1))
130 So use the right hand rule to define angles. |
There are many precollege level geometry problems that questions about computing angles from the given diagram defined by segments, lines, predefined angles and angle bisector relationships between segments or lines.
However, unlike carried by hand, it is not obvious about how to carry out the arithmetic of angles in the diagram in computational way, because the geometry problems imposes mutual relationships between angles, and even the diagram itself looks hard to represent as a symbolic object because most of the elementary geometry problems are coordinate-free.
In most of the preceding studies about solving plane geometry problems (Area Method, Wu Method, ...), they rather transforms angles into trigonometric functions, which is very inefficient for solving problems that involves numeric degrees that are not special angles (like 43 degrees, ... that uses 1 degree as its unit), and also have problems that computing the inverse trigonometric functions are not easy to compute.
In 1, it proposes a method called 'Angle Graph' to find the evaluation order of the angles, and angles can be evaluated linearly like done by the students.
I'd note that some geometric proofs needs 'auxiliary lines' and this method can't deal with such proofs. However, if the user supplies the auxiliary line first to the method as input preprocessing, this can still help more difficult proofs.
I add the implementation code in sympy below. The definitions and the mathematical details can be consulted from 1
Code
Elementary Examples
Although the result looks strange that it just throws out three free symbols as directions, the proof is still mathematically correct because you need orient some lines backwards to correctly identify with the inner angles.
The good point is that it doesn't need to be aware that the object is explicitly defined like
Triangle
, but angle relation of triangle can automatically be picked up from the three lines of the plane by using algebra of directions.Similarly, the sum of angles of a n-gon is naturally embedded into the algebra, but the only problem is that the computation is done modulo
2*pi
which makes the sum of angles of rectangle0
than2*pi
and the sum of the angles of pentagon aspi
.However, it is a natural problem of the Euclidean geometry that 0 degree and 360 degree can't be distinguished on the diagram, and has no problem for solving problems like discovering the remaining angle given other angles of the polygon.
The definition of isosceles triangle is not integrated to the framework, but when you have identified that three orientations
A, B, C
should form an isosceles triangle, you can add an auxiliary orientationD
as an angle bisector ofA, B
and define an additional relation that the angle betweenD
andC
are 90 degrees.Similarly, if you identify that the two line segments (with respect to the orientations
A
,B
) are equal, you can reformulate this by defining an auxiliary orientationC
which can reformulate the problem as the isosceles triangle problem, and adding the auxiliary angle bisector as above.Inscribed angle theorem can be embedded by using the three isosceles triangle above
Some Examples
https://mindyourdecisions.com/blog/2016/12/11/solving-for-the-angle-in-a-star-sunday-puzzle/
Limitations
This method may need more example that can demonstrate that it can be used with solve more trickier problems
Also this can only be able to solve the geometry problems where the construction is not 'overdetermined', for example, if three angles of a triangle are constructed before, all vertex of the graph have degree 2, so you may have to remove some redundant constants if this stops working.
References
Footnotes
Todd, P. A Symbolic Dynamic Geometry System Using the Analytical Geometry Method. Math.Comput.Sci. 14, 693–726 (2020). https://doi.org/10.1007/s11786-020-00490-0 ↩ ↩2
The text was updated successfully, but these errors were encountered: