Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I, J. There is a parallelogram ABCD. There is an isosceles triangle EFG. There is a circle with center H. There is a line segment AC. There is a line segment BD. There is a line segment EF. There is a line segment FG. There is a line segment EG. I is the midpoint of line AC. J is the midpoint of line BD. A, I, C are collinear. B, J, D are collinear. The circle is the circumcircle of triangle EFG.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I, J = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"])

parallelogram1 = scene.add.parallelogram(A, B, C, D)
triangle1 = scene.add.isosceles_triangle(E, F, G)
circle1 = scene.add.circle(H)
line_AC = scene.add.line_segment(A, C)
line_BD = scene.add.line_segment(B, D)
line_EF = scene.add.line_segment(E, F)
line_FG = scene.add.line_segment(F, G)
line_EG = scene.add.line_segment(E, G)

### relationships

scene.relate.is_midpoint(I, line_AC)
scene.relate.is_midpoint(J, line_BD)
scene.relate.collinear(A, I, C)
scene.relate.collinear(B, J, D)
scene.relate.is_circumcircle(circle1, triangle1)

scene.solver.numerical()
scene.plot()

is_midpoint(I, line_AC)
is_midpoint(J, line_BD)
collinear(A, I, C)
collinear(B, J, D)
is_circumcircle(circle1, triangle1)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I, J, K. There is a right trapezoid ABCD. There is a regular hexagon EFGHIJ. There is a circle with center K. There is a line AB. There is a line CD. There is a line KG. There is a line KH. The extended line AB intersects the circle at points A and B. Line AB is parallel to line CD. Line KG is a radius of the circle. Line KH is a radius of the circle. Lines KG and KH are perpendicular. Further, the perimeter of the hexagon is 12 and the area of the trapezoid is twice the area of the hexagon.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I, J, K = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"])

trapezoid1 = scene.add.right_trapezoid(A, B, C, D)
hexagon1 = scene.add.regular_hexagon(E, F, G, H, I, J)
circle1 = scene.add.circle(K)
line_AB = scene.add.line_segment(A, B)
line_CD = scene.add.line_segment(C, D)
line_KG = scene.add.line_segment(K, G)
line_KH = scene.add.line_segment(K, H)

### relationships

scene.relate.line_extension_intersects_circle_at(line_AB, circle1, A, B)
scene.relate.parallel(line_AB, line_CD)
scene.relate.is_radius(line_KG, circle1)
scene.relate.is_radius(line_KH, circle1)
scene.relate.perpendicular(line_KG, line_KH)

### Extra relationships

scene.constraint.eq(hexagon1.perimeter, 12)
scene.constraint.eq(trapezoid1.area, 2 * hexagon1.area)

scene.solver.numerical()
scene.plot()

scene.constraint.eq(scene.get_object('trapezoid1').area, 2 * scene.get_object('hexagon1').area)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I, J, K, L, M. There is a trapezoid ABCD. There is a rhombus EFGH. There is a rhombus IJKL. There is a line segment AC. There is a line segment BD. There is a line segment EG. There is a line segment FH. There is a line segment IK. There is a line segment JL. Line segment AC intersects line segment BD at point M. Point M is the midpoint of line segment AC. Point M is the midpoint of line segment BD. Rhombus IJKL is the mirror image of rhombus EFGH across line segment AC. Line segment AC is perpendicular to line segment BD. Further, the area of rhombus EFGH is equal to the area of rhombus IJKL. Further, angle AMB is a right angle.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I, J, K, L, M = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M"])

trapezoid1 = scene.add.trapezoid(A, B, C, D)
rhombus1 = scene.add.rhombus(E, F, G, H)
rhombus2 = scene.add.rhombus(I, J, K, L)
line_AC = scene.add.line_segment(A, C)
line_BD = scene.add.line_segment(B, D)
line_EG = scene.add.line_segment(E, G)
line_FH = scene.add.line_segment(F, H)
line_IK = scene.add.line_segment(I, K)
line_JL = scene.add.line_segment(J, L)

### relationships

scene.relate.lines_intersect_at(line_AC, line_BD, M)
scene.relate.is_midpoint(M, line_AC)
scene.relate.is_midpoint(M, line_BD)
scene.relate.mirror_across_line(rhombus1, rhombus2, line_AC)
scene.relate.perpendicular(line_AC, line_BD)

### Extra relationships

scene.constraint.eq(rhombus1.area, rhombus2.area)
scene.constraint.eq(scene.angle(scene.get_object('A'), scene.get_object('M'), scene.get_object('B')), 90)

scene.solver.numerical()
scene.plot()


Diagram description: The diagram contains points A, B, C, D, E, F, G, H. There is a circle with center A. There is a square with vertices B, C, D, E. There is a major arc with center F, start point G, and end point H. There are line segments BC, CD, DE, EB, BD, and CF. Line BC intersects the circle at points B and C. Line BD is a diameter of the circle. Line BC is perpendicular to line CD. Point F lies on the circle. Point G lies on the circle. Further, the length of line BC is equal to the length of line CD and the angle BCD is 90 degrees.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H"])

circle1 = scene.add.circle(A)
square1 = scene.add.square(B, C, D, E)
semicircle1 = scene.add.major_arc(F, G, H)
line_BC = scene.add.line_segment(B, C)
line_CD = scene.add.line_segment(C, D)
line_DE = scene.add.line_segment(D, E)
line_EB = scene.add.line_segment(E, B)
line_BD = scene.add.line_segment(B, D)
line_CF = scene.add.line_segment(C, F)

### relationships

scene.relate.line_intersects_circle_at(line_BC, circle1, B, C)
scene.relate.is_diameter(line_BD, circle1)
scene.relate.perpendicular(line_BC, line_CD)
scene.relate.point_lies_on(F, circle1)
scene.relate.point_lies_on(G, circle1)

### Extra relationships

scene.constraint.eq(line_BC.length, line_CD.length)
scene.constraint.eq(scene.angle(scene.get_object('B'), scene.get_object('C'), scene.get_object('D')), 90)

scene.solver.numerical()
scene.plot()


Diagram description: The diagram contains points A, B, C, D, E, F, G, H. There is a circle with center A. There is a rhomboid BCDE. There is a minor arc FG. There is a line segment BD. There is a line segment CF. There is a line segment AG. There is a line segment FE. Line BD intersects line CF at point H. Points B, H, and D are collinear. Line BD is a chord of the circle. Point F lies on the circle. Point G lies on the circle.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H"])

circle1 = scene.add.circle(A)
rhomboid1 = scene.add.rhomboid(B, C, D, E)
minor_arc1 = scene.add.minor_arc(A, F, G)
line_BD = scene.add.line_segment(B, D)
line_CF = scene.add.line_segment(C, F)
line_AG = scene.add.line_segment(A, G)
line_FE = scene.add.line_segment(F, E)

### relationships

scene.relate.lines_intersect_at(line_BD, line_CF, H)
scene.relate.collinear(B, H, D)
scene.relate.is_chord(line_BD, circle1)
scene.relate.point_lies_on(F, circle1)
scene.relate.point_lies_on(G, circle1)

scene.solver.numerical()
scene.plot()

lines_intersect_at(line_BD, line_CF, H)
collinear(B, H, D)
is_chord(line_BD, circle1)
point_lies_on(F, circle1)
point_lies_on(G, circle1)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I. There is a trapezoid ABCD. There is a trapezoid EFGH. There is a circle with center I. There is a line segment AB. There is a line segment CD. There is a line segment EF. There is a line segment GH. There is a line segment IF. There is a line segment IH. There is a line segment AC. There is a line segment BD. Line IF is the perpendicular bisector of line AB. Trapezoids ABCD and EFGH are similar. Line IF is a radius of the circle. Line IH is a radius of the circle. Point F lies on the circle. Further, the lengths of line IF and line IH are equal, and the area of trapezoid ABCD is no greater than 20.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I"])

trapezoid1 = scene.add.trapezoid(A, B, C, D)
trapezoid2 = scene.add.trapezoid(E, F, G, H)
circle1 = scene.add.circle(I)
line_AB = scene.add.line_segment(A, B)
line_CD = scene.add.line_segment(C, D)
line_EF = scene.add.line_segment(E, F)
line_GH = scene.add.line_segment(G, H)
line_IF = scene.add.line_segment(I, F)
line_IH = scene.add.line_segment(I, H)
line_AC = scene.add.line_segment(A, C)
line_BD = scene.add.line_segment(B, D)

### relationships

scene.relate.perpendicular_bisector_at(line_AB, line_IF)
scene.relate.similar(trapezoid1, trapezoid2)
scene.relate.is_radius(line_IF, circle1)
scene.relate.is_radius(line_IH, circle1)
scene.relate.point_lies_on(F, circle1)

### Extra relationships

scene.constraint.eq(line_IF.length, line_IH.length)
scene.constraint.leq(trapezoid1.area, 20)

scene.solver.numerical()
scene.plot()


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I, J. There is a parallelogram with vertices A, B, C, D. There is a semicircle with center E and endpoints F and G. There is a semicircle with center H and endpoints I and J. There is a line segment AC. There is a line segment BD. Point F lies on the semicircle with center E. Point G lies on the semicircle with center E. Point I lies on the semicircle with center H. Point J lies on the semicircle with center H. The angle FEG is a right angle. Further, the radius of the semicircle with center E is equal to 3 units. Further, the perimeter of the parallelogram with vertices A, B, C, D is less than or equal to 20 units.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I, J = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"])

parallelogram1 = scene.add.parallelogram(A, B, C, D)
semicircle1 = scene.add.major_arc(E, F, G)
semicircle2 = scene.add.major_arc(H, I, J)
line_AC = scene.add.line_segment(A, C)
line_BD = scene.add.line_segment(B, D)

### relationships

scene.relate.point_lies_on(F, semicircle1)
scene.relate.point_lies_on(G, semicircle1)
scene.relate.point_lies_on(I, semicircle2)
scene.relate.point_lies_on(J, semicircle2)
scene.relate.right_angle(F, E, G)

### Extra relationships

scene.constraint.eq(semicircle1.radius, 3.0)
scene.constraint.leq(parallelogram1.perimeter, 20.0)

scene.solver.numerical()
scene.plot()

point_lies_on(F, semicircle1)
point_lies_on(G, semicircle1)
point_lies_on(I, semicircle2)
point_lies_on(J, semicircle2)
right_angle(F, E, G)


Diagram description: The diagram contains points A, B, C, O, D, E, F. There is an obtuse triangle ABC. There is a circle with center O. There is an acute triangle DEF. There is a line segment AD. There is a line segment BE. There is a line segment CF. There is a line segment OA. There is a line segment OB. There is a line segment OC. The circle is the circumcircle of triangle ABC. Line AD is a chord of the circle. Line BE is an altitude of triangle ABC from vertex B. Line CF is a median of triangle ABC from vertex C. Line OA is perpendicular to line BE.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, O, D, E, F = scene.add.points(["A", "B", "C", "O", "D", "E", "F"])

triangle1 = scene.add.obtuse_triangle(A, B, C)
circle1 = scene.add.circle(O)
triangle2 = scene.add.acute_triangle(D, E, F)
line_AD = scene.add.line_segment(A, D)
line_BE = scene.add.line_segment(B, E)
line_CF = scene.add.line_segment(C, F)
line_OA = scene.add.line_segment(O, A)
line_OB = scene.add.line_segment(O, B)
line_OC = scene.add.line_segment(O, C)

### relationships

scene.relate.is_circumcircle(circle1, triangle1)
scene.relate.is_chord(line_AD, circle1)
scene.relate.is_altitude(line_BE, triangle1, B)
scene.relate.is_median(line_CF, triangle1, C)
scene.relate.perpendicular(line_OA, line_BE)

scene.solver.numerical()
scene.plot()

is_circumcircle(circle1, triangle1)
is_chord(line_AD, circle1)
is_altitude(line_BE, triangle1, B)
is_median(line_CF, triangle1, C)
perpendicular(line_OA, line_BE)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H. There is a circle with center A. There is a right triangle with vertices B, C, D. There is a trapezoid with vertices E, F, G, H. There is a line segment BC. There is a line segment CD. There is a line segment EF. There is a line segment FG. Point B lies on the circle. Point C lies on the circle. Line BC is a chord of the circle. Line BC is perpendicular to line CD. Line BC intersects line FG at point C. Further, the length of line BC is equal to the length of line CD and the angle at point C in triangle BCD is 90 degrees.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H"])

circle1 = scene.add.circle(A)
right_triangle1 = scene.add.right_triangle(B, C, D)
trapezoid1 = scene.add.trapezoid(E, F, G, H)
line_BC = scene.add.line_segment(B, C)
line_CD = scene.add.line_segment(C, D)
line_EF = scene.add.line_segment(E, F)
line_FG = scene.add.line_segment(F, G)

### relationships

scene.relate.point_lies_on(B, circle1)
scene.relate.point_lies_on(C, circle1)
scene.relate.is_chord(line_BC, circle1)
scene.relate.perpendicular(line_BC, line_CD)
scene.relate.lines_intersect_at(line_BC, line_FG, C)

### Extra relationships

scene.constraint.eq(line_BC.length, line_CD.length)
scene.constraint.eq(scene.angle(scene.get_object('B'), scene.get_object('C'), scene.get_object('D')), 90)

scene.solver.numerical()
scene.plot()

point_lies_on(B, circle1)
point_lies_on(C, circle1)
is_chord(line_BC, circle1)
perpendicular(line_BC, line_CD)
lines_intersect_at(line_BC, line_FG, C)


Diagram description: The diagram contains points A, B, C, O, D, E, F. There is a triangle ABC with vertices A, B, C. There is a circle with center O. There is a minor arc EF with center D. There is a line segment AD. There is a line segment BE. The circle is the circumcircle of triangle ABC. Line AD is tangent to the circle at point A. Point E is the midpoint of line AD. Line BE is an altitude of triangle ABC from vertex B. Point F lies on the circle.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, O, D, E, F = scene.add.points(["A", "B", "C", "O", "D", "E", "F"])

triangleABC = scene.add.triangle(A, B, C)
circleO = scene.add.circle(O)
minor_arc_DE = scene.add.minor_arc(D, E, F)
line_AD = scene.add.line_segment(A, D)
line_BE = scene.add.line_segment(B, E)

### relationships

scene.relate.is_circumcircle(circleO, triangleABC)
scene.relate.tangent_to_circle(line_AD, circleO, A)
scene.relate.is_midpoint(E, line_AD)
scene.relate.is_altitude(line_BE, triangleABC, B)
scene.relate.point_lies_on(F, circleO)

scene.solver.numerical()
scene.plot()

is_circumcircle(circleO, triangleABC)
tangent_to_circle(line_AD, circleO, A)
is_midpoint(E, line_AD)
is_altitude(line_BE, triangleABC, B)
point_lies_on(F, circleO)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I. There is a circle with center A. There is a trapezoid BCDE. There is an isosceles trapezoid FGHI. There is a line segment BD. There is a line segment CE. There is a line segment FH. There is a line segment GI. Line BD intersects the circle at points B and D. Line CE is tangent to the circle at point C. Line BD is parallel to line FH. Line GI is a diameter of the circle. Line CE is perpendicular to line BD.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I"])

circle1 = scene.add.circle(A)
trapezoid1 = scene.add.trapezoid(B, C, D, E)
isosceles_trapezoid1 = scene.add.isosceles_trapezoid(F, G, H, I)
line_BD = scene.add.line_segment(B, D)
line_CE = scene.add.line_segment(C, E)
line_FH = scene.add.line_segment(F, H)
line_GI = scene.add.line_segment(G, I)

### relationships

scene.relate.line_intersects_circle_at(line_BD, circle1, B, D)
scene.relate.tangent_to_circle(line_CE, circle1, C)
scene.relate.parallel(line_BD, line_FH)
scene.relate.is_diameter(line_GI, circle1)
scene.relate.perpendicular(line_CE, line_BD)

scene.solver.numerical()
scene.plot()


Diagram description: The diagram contains points A, B, C, O, M, N, P. There is a triangle ABC. There is a circle with center O. There is an isosceles trapezoid MNOP. There is a line AB. There is a line AC. There is a line BC. There is a line MO. There is a line NO. The circle with center O is the circumcircle of triangle ABC. Point A lies on the circle with center O. Point C lies on the circle with center O. Point M is the midpoint of line AC. Point P is the midpoint of line BC. Further, the length of line BC is equal to the length of line AC and the inradius of triangle ABC is 2.0 units.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, O, M, N, P = scene.add.points(["A", "B", "C", "O", "M", "N", "P"])

triangleABC = scene.add.triangle(A, B, C)
circleO = scene.add.circle(O)
isosceles_trapezoidMNOP = scene.add.isosceles_trapezoid(M, N, O, P)
line_AC = scene.add.line_segment(A, C)
line_BC = scene.add.line_segment(B, C)
line_AB = scene.add.line_segment(A, B)
line_MO = scene.add.line_segment(M, O)
line_NO = scene.add.line_segment(N, O)

### relationships

scene.relate.is_circumcircle(circleO, triangleABC)
scene.relate.point_lies_on(A, circleO)
scene.relate.point_lies_on(C, circleO)
scene.relate.is_midpoint(M, line_AC)
scene.relate.is_midpoint(P, line_BC)

### Extra relationships

scene.constraint.eq(line_BC.length, line_AC.length)
scene.constraint.eq(triangleABC.inradius, 2.0)

scene.solver.numerical()
scene.plot()

is_circumcircle(circleO, triangleABC)
point_lies_on(A, circleO)
point_lies_on(C, circleO)
is_midpoint(M, line_AC)
is_midpoint(P, line_BC)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I. There is an obtuse triangle with vertices A, B, C. There is an isosceles triangle with vertices D, E, F. There is an obtuse triangle with vertices G, H, I. There is a line segment AD. There is a line segment BE. There is a line segment CF. There is a line segment GH. There is a line segment HI. There is a line segment IG. Triangle ABC is similar to triangle GHI. Points A, D, and G are collinear. Line AD is perpendicular to line BE. Line CF is an altitude from vertex C to the opposite side of triangle ABC. Point F is the orthocenter of triangle DEF. Further, length of line AD is equal to length of line BE and angle ABC is 120 degrees.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I"])

triangle1 = scene.add.obtuse_triangle(A, B, C)
triangle2 = scene.add.isosceles_triangle(D, E, F)
triangle3 = scene.add.obtuse_triangle(G, H, I)
line_AD = scene.add.line_segment(A, D)
line_BE = scene.add.line_segment(B, E)
line_CF = scene.add.line_segment(C, F)
line_GH = scene.add.line_segment(G, H)
line_HI = scene.add.line_segment(H, I)
line_IG = scene.add.line_segment(I, G)

### relationships

scene.relate.similar(triangle1, triangle3)
scene.relate.collinear(A, D, G)
scene.relate.perpendicular(line_AD, line_BE)
scene.relate.is_altitude(line_CF, triangle1, C)
scene.relate.is_orthocenter(F, triangle2)

### Extra relationships

scene.constraint.eq(line_AD.length, line_BE.length)
scene.constraint.eq(scene.angle(scene.get_object('A'), scene.get_object('B'), scene.get_object('C')), 120)

scene.solver.numerical()
scene.plot()

similar(triangle1, triangle3)
collinear(A, D, G)
perpendicular(line_AD, line_BE)
is_altitude(line_CF, triangle1, C)
is_orthocenter(F, triangle2)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H. There is a right isosceles triangle ABC with AB = BC and right angle at B. There is a square DEFG. There is a circle with center H. There is a line segment AC. There is a line segment BD. There is a line segment HF. Line HF is a radius of the circle. The circle is the circumcircle of square DEFG. Line AC is perpendicular to line BD. Line BD is an altitude from vertex B to triangle ABC. The circle is the incircle of triangle ABC.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H"])

triangleABC = scene.add.right_isosceles_triangle(A, B, C)
squareDEFG = scene.add.square(D, E, F, G)
circleH = scene.add.circle(H)
line_AC = scene.add.line_segment(A, C)
line_BD = scene.add.line_segment(B, D)
line_HF = scene.add.line_segment(H, F)

### relationships

scene.relate.is_radius(line_HF, circleH)
scene.relate.is_circumcircle(circleH, squareDEFG)
scene.relate.perpendicular(line_AC, line_BD)
scene.relate.is_altitude(line_BD, triangleABC, B)
scene.relate.is_incircle(circleH, triangleABC)

scene.solver.numerical()
scene.plot()

is_radius(line_HF, circleH)
is_circumcircle(circleH, squareDEFG)
perpendicular(line_AC, line_BD)
is_altitude(line_BD, triangleABC, B)
is_incircle(circleH, triangleABC)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H. There is a rectangle with points A, B, C, D. There is a circle with center E. There is an isosceles triangle with vertices F, G, H. There is a line segment AC. There is a line segment EG. There is a line segment FH. The circle is the circumcircle of the rectangle. Point G is the orthocenter of triangle FGH. Points A, E, and C are collinear. Line AC is a diameter of the circle. Line EG is perpendicular to line FH.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H"])

rectangle1 = scene.add.rectangle(A, B, C, D)
circle1 = scene.add.circle(E)
triangle1 = scene.add.isosceles_triangle(F, G, H)
line_AC = scene.add.line_segment(A, C)
line_EG = scene.add.line_segment(E, G)
line_FH = scene.add.line_segment(F, H)

### relationships

scene.relate.is_circumcircle(circle1, rectangle1)
scene.relate.is_orthocenter(G, triangle1)
scene.relate.collinear(A, E, C)
scene.relate.is_diameter(line_AC, circle1)
scene.relate.perpendicular(line_EG, line_FH)

scene.solver.numerical()
scene.plot()

is_circumcircle(circle1, rectangle1)
is_orthocenter(G, triangle1)
collinear(A, E, C)
is_diameter(line_AC, circle1)
perpendicular(line_EG, line_FH)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H. There is a right triangle ABC with right angle at B. There is a rhombus DEFG. There is a circle with center H. There is a line segment AC. There is a line segment HD. There is a line segment HF. Line AC is tangent to the circle at A. Points A, H, and D are collinear. Line HD is a radius of the circle. Line HF is a radius of the circle. Line HD is perpendicular to line HF.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H"])

triangle1 = scene.add.right_triangle(A, B, C)
rhombus1 = scene.add.rhombus(D, E, F, G)
circle1 = scene.add.circle(H)
line_AC = scene.add.line_segment(A, C)
line_HD = scene.add.line_segment(H, D)
line_HF = scene.add.line_segment(H, F)

### relationships

scene.relate.tangent_to_circle(line_AC, circle1, A)
scene.relate.collinear(A, H, D)
scene.relate.is_radius(line_HD, circle1)
scene.relate.is_radius(line_HF, circle1)
scene.relate.perpendicular(line_HD, line_HF)

scene.solver.numerical()
scene.plot()

tangent_to_circle(line_AC, circle1, A)
collinear(A, H, D)
is_radius(line_HD, circle1)
is_radius(line_HF, circle1)
perpendicular(line_HD, line_HF)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, O, I, J, K. There is a regular octagon with vertices A, B, C, D, E, F, G, H. There is a circle with center O. There is a scalene triangle with vertices I, J, K. There is a line segment OI. There is a line segment OJ. There is a line segment OK. There is a line segment IJ. There is a line segment JK. There is a line segment KI. The circle is the circumcircle of the regular octagon. Line OI is a radius of the circle. Line OJ is a radius of the circle. Line OK is a radius of the circle. The extension of line IJ intersects the circle at I and J.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, O, I, J, K = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "O", "I", "J", "K"])

regular_octagon1 = scene.add.regular_octagon(A, B, C, D, E, F, G, H)
circle1 = scene.add.circle(O)
scalene_triangle1 = scene.add.scalene_triangle(I, J, K)
line_OI = scene.add.line_segment(O, I)
line_OJ = scene.add.line_segment(O, J)
line_OK = scene.add.line_segment(O, K)
line_IJ = scene.add.line_segment(I, J)
line_JK = scene.add.line_segment(J, K)
line_KI = scene.add.line_segment(K, I)

### relationships

scene.relate.is_circumcircle(circle1, regular_octagon1)
scene.relate.is_radius(line_OI, circle1)
scene.relate.is_radius(line_OJ, circle1)
scene.relate.is_radius(line_OK, circle1)
scene.relate.line_extension_intersects_circle_at(line_IJ, circle1, I, J)

scene.solver.numerical()
scene.plot()


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I, J, K. There is a trapezoid ABCD. There is a rhomboid EFGH. There is a circle with center I. There is a line segment AB. There is a line segment CD. There is a line segment EF. There is a line segment FG. There is a line segment IJ. Line AB is parallel to line CD. Line EF intersects the circle at points J and K. Angle ABC is a right angle. Line AB is perpendicular to line EF. Line IJ is a radius of the circle. Further, the area of trapezoid ABCD equals the area of rhomboid EFGH and angle ABC is 90 degrees.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I, J, K = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"])

trapezoid1 = scene.add.trapezoid(A, B, C, D)
rhomboid1 = scene.add.rhomboid(E, F, G, H)
circle1 = scene.add.circle(I)
line_AB = scene.add.line_segment(A, B)
line_CD = scene.add.line_segment(C, D)
line_EF = scene.add.line_segment(E, F)
line_FG = scene.add.line_segment(F, G)
line_IJ = scene.add.line_segment(I, J)

### relationships

scene.relate.parallel(line_AB, line_CD)
scene.relate.line_intersects_circle_at(line_EF, circle1, J, K)
scene.relate.right_angle(A, B, C)
scene.relate.perpendicular(line_AB, line_EF)
scene.relate.is_radius(line_IJ, circle1)

### Extra relationships

scene.constraint.eq(trapezoid1.area, rhomboid1.area)
scene.constraint.eq(scene.angle(scene.get_object('A'), scene.get_object('B'), scene.get_object('C')), 90)

scene.solver.numerical()
scene.plot()


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I. There is a circle with center A. There is a trapezoid BCDE. There is a square FGHI. There is a line segment BD. There is a line segment FH. There is a line segment CG. Line BD is the perpendicular bisector of line CG. Point G lies on the circle. Line FH is a diameter of the circle. The circle is the circumcircle of square FGHI. Line CG intersects the circle at points C and G.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I"])

circle1 = scene.add.circle(A)
trapezoid1 = scene.add.trapezoid(B, C, D, E)
square1 = scene.add.square(F, G, H, I)
line_BD = scene.add.line_segment(B, D)
line_FH = scene.add.line_segment(F, H)
line_CG = scene.add.line_segment(C, G)

### relationships

scene.relate.perpendicular_bisector_at(line_BD, line_CG)
scene.relate.point_lies_on(G, circle1)
scene.relate.is_diameter(line_FH, circle1)
scene.relate.is_circumcircle(circle1, square1)
scene.relate.line_intersects_circle_at(line_CG, circle1, C, G)

scene.solver.numerical()
scene.plot()


Diagram description: The diagram contains points A, B, C, D, E, F, G, H. There is a trapezoid ABCD. There is a circle with center E. There is a right triangle FGH. There is a line segment AC. There is a line segment BD. There is a line segment EF. There is a line segment FH. Line AC is perpendicular to line BD. Point G is the orthocenter of triangle FGH. Line FH is a chord of the circle. Point F lies on the circle. Point H lies on the circle. Further, the length of line AC is equal to the length of line BD. Further, the area of triangle FGH is 6.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H"])

trapezoid1 = scene.add.trapezoid(A, B, C, D)
circle1 = scene.add.circle(E)
right_triangle1 = scene.add.right_triangle(F, G, H)
line_AC = scene.add.line_segment(A, C)
line_BD = scene.add.line_segment(B, D)
line_EF = scene.add.line_segment(E, F)
line_FH = scene.add.line_segment(F, H)

### relationships

scene.relate.perpendicular(line_AC, line_BD)
scene.relate.is_orthocenter(G, right_triangle1)
scene.relate.is_chord(line_FH, circle1)
scene.relate.point_lies_on(F, circle1)
scene.relate.point_lies_on(H, circle1)

### Extra relationships

scene.constraint.eq(line_AC.length, line_BD.length)
scene.constraint.eq(right_triangle1.area, 6)

scene.solver.numerical()
scene.plot()

perpendicular(line_AC, line_BD)
is_orthocenter(G, right_triangle1)
is_chord(line_FH, circle1)
point_lies_on(F, circle1)
point_lies_on(H, circle1)


Diagram description: The diagram contains points A, B, C, D, E, F, G. There is a triangle ABC. There is a circle with center D. There is a scalene triangle EFG. There is a line segment AD. There is a line segment BE. There is a line segment CF. There is a line segment EG. There is a line segment FG. Line AD is a radius of the circle. Line BE is congruent to line CF. Line BE is an altitude of triangle ABC from vertex B. The circle is the circumcircle of triangle ABC. The circle is the incircle of triangle EFG.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G = scene.add.points(["A", "B", "C", "D", "E", "F", "G"])

triangle1 = scene.add.triangle(A, B, C)
circle1 = scene.add.circle(D)
scalene1 = scene.add.scalene_triangle(E, F, G)
line_AD = scene.add.line_segment(A, D)
line_BE = scene.add.line_segment(B, E)
line_CF = scene.add.line_segment(C, F)
line_EG = scene.add.line_segment(E, G)
line_FG = scene.add.line_segment(F, G)

### relationships

scene.relate.is_radius(line_AD, circle1)
scene.relate.congruent(line_BE, line_CF)
scene.relate.is_altitude(line_BE, triangle1, B)
scene.relate.is_circumcircle(circle1, triangle1)
scene.relate.is_incircle(circle1, scalene1)

scene.solver.numerical()
scene.plot()

is_radius(line_AD, circle1)
congruent(line_BE, line_CF)
is_altitude(line_BE, triangle1, B)
is_circumcircle(circle1, triangle1)
is_incircle(circle1, scalene1)


Diagram description: The diagram contains points A, B, C, D, E. There is a circle with center A. There is a circle with center B. There is a triangle with vertices C, D, E. There is a line segment CD. There is a line segment DE. There is a line segment EC. There is a line segment AD. circle with center A is the circumcircle of triangle CDE. circle with center B is the incircle of triangle CDE. angle DCE is a right angle. angle ECD is an obtuse angle. line AD is a radius of the circle with center A. Further, the diameter of the circle with center A is 4.0. Further, the area of triangle CDE is no greater than 6.0.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E = scene.add.points(["A", "B", "C", "D", "E"])

circle1 = scene.add.circle(A)
circle2 = scene.add.circle(B)
triangle1 = scene.add.triangle(C, D, E)
line_CD = scene.add.line_segment(C, D)
line_DE = scene.add.line_segment(D, E)
line_EC = scene.add.line_segment(E, C)
line_AD = scene.add.line_segment(A, D)

### relationships

scene.relate.is_circumcircle(circle1, triangle1)
scene.relate.is_incircle(circle2, triangle1)
scene.relate.right_angle(D, C, E)
scene.relate.obtuse_angle(E, C, D)
scene.relate.is_radius(line_AD, circle1)

### Extra relationships

scene.constraint.eq(circle1.diameter, 4.0)
scene.constraint.leq(triangle1.area, 6.0)

scene.solver.numerical()
scene.plot()

is_circumcircle(circle1, triangle1)
is_incircle(circle2, triangle1)
right_angle(D, C, E)
obtuse_angle(E, C, D)
is_radius(line_AD, circle1)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I, J, K, L. There is a right trapezoid ABCD. There is a right trapezoid EFGH. There is a major arc IJK. There is a line segment AD. There is a line segment EH. There is a line segment IJ. There is a line segment JK. The angle ADB is acute. The extensions of line AD and line EH intersect at point L. Trapezoid ABCD and trapezoid EFGH are mirror images across line IJ. Line AD is perpendicular to line IJ. Point J lies on major arc IJK. Further, the area of trapezoid ABCD equals the area of trapezoid EFGH, and the angle ADB equals 60 degrees.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I, J, K, L = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"])

trapezoid1 = scene.add.right_trapezoid(A, B, C, D)
trapezoid2 = scene.add.right_trapezoid(E, F, G, H)
semicircle1 = scene.add.major_arc(I, J, K)
line_AD = scene.add.line_segment(A, D)
line_EH = scene.add.line_segment(E, H)
line_IJ = scene.add.line_segment(I, J)
line_JK = scene.add.line_segment(J, K)

### relationships

scene.relate.acute_angle(A, D, B)
scene.relate.line_extensions_intersect_at(line_AD, line_EH, L)
scene.relate.mirror_across_line(trapezoid1, trapezoid2, line_IJ)
scene.relate.perpendicular(line_AD, line_IJ)
scene.relate.point_lies_on(J, semicircle1)

### Extra relationships

scene.constraint.eq(trapezoid1.area, trapezoid2.area)
scene.constraint.eq(scene.angle(scene.get_object('A'), scene.get_object('D'), scene.get_object('B')), 60)

scene.solver.numerical()
scene.plot()


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I, J, K. There is a quadrilateral with vertices A, B, C, D. There is a rhombus with vertices E, F, G, H. There is an obtuse triangle with vertices I, J, K. There is a line segment AC. There is a line segment BD. There is a line segment EG. There is a line segment FH. The quadrilateral ABCD is similar to the rhombus EFGH. Point A lies on line segment AC. Point C lies on line segment AC. Line segment AC is perpendicular to line segment BD. Angle JKI is obtuse. Further, the length of line segment AC is equal to the length of line segment BD and the area of the obtuse triangle IJK is less than or equal to 10 square units.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I, J, K = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"])

quadrilateral1 = scene.add.quadrilateral(A, B, C, D)
rhombus1 = scene.add.rhombus(E, F, G, H)
obtuse_triangle1 = scene.add.obtuse_triangle(I, J, K)
line_AC = scene.add.line_segment(A, C)
line_BD = scene.add.line_segment(B, D)
line_EG = scene.add.line_segment(E, G)
line_FH = scene.add.line_segment(F, H)

### relationships

scene.relate.similar(quadrilateral1, rhombus1)
scene.relate.point_lies_on(A, line_AC)
scene.relate.point_lies_on(C, line_AC)
scene.relate.perpendicular(line_AC, line_BD)
scene.relate.obtuse_angle(J, K, I)

### Extra relationships

scene.constraint.eq(line_AC.length, line_BD.length)
scene.constraint.leq(obtuse_triangle1.area, 10)

scene.solver.numerical()
scene.plot()

similar(quadrilateral1, rhombus1)
point_lies_on(A, line_AC)
point_lies_on(C, line_AC)
perpendicular(line_AC, line_BD)
obtuse_angle(J, K, I)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I, J, K. There is a circle with center A. There is a regular pentagon with vertices B, C, D, E, F. There is a square with vertices G, H, I, J. There is a line segment BD. There is a line segment GI. Line BD and line GI intersect at point K. Points B, K, D are collinear. Line BD is perpendicular to line GI. The circle is the circumcircle of the regular pentagon. The circle is the incircle of the square.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I, J, K = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"])

circle1 = scene.add.circle(A)
pentagon1 = scene.add.regular_pentagon(B, C, D, E, F)
square1 = scene.add.square(G, H, I, J)
line_BD = scene.add.line_segment(B, D)
line_GI = scene.add.line_segment(G, I)

### relationships

scene.relate.lines_intersect_at(line_BD, line_GI, K)
scene.relate.collinear(B, K, D)
scene.relate.perpendicular(line_BD, line_GI)
scene.relate.is_circumcircle(circle1, pentagon1)
scene.relate.is_incircle(circle1, square1)

scene.solver.numerical()
scene.plot()

lines_intersect_at(line_BD, line_GI, K)
collinear(B, K, D)
perpendicular(line_BD, line_GI)
is_circumcircle(circle1, pentagon1)
is_incircle(circle1, square1)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I, J, K. There is a regular pentagon with vertices A, B, C, D, E. There is a rectangle with vertices F, G, H, I. There is a circle with center J. There are line segments AC, FG, JH, JI. The extensions of line AC and line FG intersect at point K. Angle AKF is acute. The circle is the circumcircle of the regular pentagon. The line segment JH is a radius of the circle. Line JI is perpendicular to line FG. Further, the diagonal of the regular pentagon is equal to two times the radius of the circle, and the length of line JI is less than or equal to one-eighth of the perimeter of the rectangle.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I, J, K = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"])

pentagon1 = scene.add.regular_pentagon(A, B, C, D, E)
rectangle1 = scene.add.rectangle(F, G, H, I)
circle1 = scene.add.circle(J)
line_AC = scene.add.line_segment(A, C)
line_FG = scene.add.line_segment(F, G)
line_JH = scene.add.line_segment(J, H)
line_JI = scene.add.line_segment(J, I)

### relationships

scene.relate.line_extensions_intersect_at(line_AC, line_FG, K)
scene.relate.acute_angle(A, K, F)
scene.relate.is_circumcircle(circle1, pentagon1)
scene.relate.is_radius(line_JH, circle1)
scene.relate.perpendicular(line_JI, line_FG)

### Extra relationships

scene.constraint.eq(pentagon1.diagonal, 2 * circle1.radius)
scene.constraint.leq(line_JI.length, rectangle1.perimeter / 8)

scene.solver.numerical()
scene.plot()

scene.constraint.eq(scene.get_object('pentagon1').diagonal, 2 * scene.get_object('circle1').radius)

scene.constraint.leq(scene.get_object('line_JI').length, scene.get_object('rectangle1').perimeter / 8)


Diagram description: The diagram contains points A, B, C, D, E, F, G. There is a major arc with center A from B to C. There is a circle with center D. There is a major arc with center E from F to G. There is a line segment AD. There is a line segment BD. There is a line segment EG. Line AD is a radius of the circle. Line EG is a chord of the circle. Line AD and line BD intersect at D. Line AD is perpendicular to line BD. Point F lies on the major arc with center E from F to G.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G = scene.add.points(["A", "B", "C", "D", "E", "F", "G"])

semicircle1 = scene.add.major_arc(A, B, C)
circle1 = scene.add.circle(D)
semicircle2 = scene.add.major_arc(E, F, G)
line_AD = scene.add.line_segment(A, D)
line_BD = scene.add.line_segment(B, D)
line_EG = scene.add.line_segment(E, G)

### relationships

scene.relate.is_radius(line_AD, circle1)
scene.relate.lines_intersect_at(line_AD, line_BD, D)
scene.relate.is_chord(line_EG, circle1)
scene.relate.perpendicular(line_AD, line_BD)
scene.relate.point_lies_on(F, semicircle2)

scene.solver.numerical()
scene.plot()

is_radius(line_AD, circle1)
lines_intersect_at(line_AD, line_BD, D)
is_chord(line_EG, circle1)
perpendicular(line_AD, line_BD)
point_lies_on(F, semicircle2)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I, J, K. There is a kite with vertices A, B, C, D. There is a regular pentagon with vertices E, F, G, H, I. There is a circle with center J. There is a line segment AC. There is a line segment BD. There is a line segment EG. There is a line segment JE. Line AC is the perpendicular bisector of line BD. The extensions of lines AC and EG intersect at point K. Line BD is the angle bisector of angle ABD. The circle with center J is the circumcircle of the regular pentagon. Line JE is a radius of the circle with center J.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I, J, K = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"])

kite1 = scene.add.kite(A, B, C, D)
pentagon1 = scene.add.regular_pentagon(E, F, G, H, I)
circle1 = scene.add.circle(J)
line_AC = scene.add.line_segment(A, C)
line_BD = scene.add.line_segment(B, D)
line_EG = scene.add.line_segment(E, G)
line_JE = scene.add.line_segment(J, E)

### relationships

scene.relate.perpendicular_bisector_at(line_AC, line_BD)
scene.relate.line_extensions_intersect_at(line_AC, line_EG, K)
scene.relate.angle_bisector(A, B, D, line_BD)
scene.relate.is_circumcircle(circle1, pentagon1)
scene.relate.is_radius(line_JE, circle1)

scene.solver.numerical()
scene.plot()


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I, J, K, L, O, P, Q. There is a rectangle with vertices A, B, C, D. There is a quadrilateral with vertices E, F, G, H. There is a quadrilateral with vertices I, J, K, L. There is a line segment AC. There is a line segment BD. There is a line segment EG. There is a line segment FH. There is a line segment IK. There is a line segment JL. Line AC intersects line BD at O. Line EG intersects line FH at P. Line IK intersects line JL at Q. The angle between OA and OB at O is acute. The angle between EP and FP at P is a right angle. Further, the perimeter of the rectangle equals the perimeter of the quadrilateral with vertices E, F, G, H. Further, the length of line AC is less than or equal to the length of line EG.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I, J, K, L, O, P, Q = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "O", "P", "Q"])

rectangle1 = scene.add.rectangle(A, B, C, D)
quad1 = scene.add.quadrilateral(E, F, G, H)
quad2 = scene.add.quadrilateral(I, J, K, L)
line_AC = scene.add.line_segment(A, C)
line_BD = scene.add.line_segment(B, D)
line_EG = scene.add.line_segment(E, G)
line_FH = scene.add.line_segment(F, H)
line_IK = scene.add.line_segment(I, K)
line_JL = scene.add.line_segment(J, L)

### relationships

scene.relate.lines_intersect_at(line_AC, line_BD, O)
scene.relate.lines_intersect_at(line_EG, line_FH, P)
scene.relate.lines_intersect_at(line_IK, line_JL, Q)
scene.relate.acute_angle(A, O, B)
scene.relate.right_angle(E, P, F)

### Extra relationships

scene.constraint.eq(rectangle1.perimeter, quad1.perimeter)
scene.constraint.leq(line_AC.length, line_EG.length)

scene.solver.numerical()
scene.plot()

lines_intersect_at(line_AC, line_BD, O)
lines_intersect_at(line_EG, line_FH, P)
lines_intersect_at(line_IK, line_JL, Q)
acute_angle(A, O, B)
right_angle(E, P, F)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H. There is a major arc with center A, start point B, and end point C. There is a circle with center D. There is an isosceles trapezoid with vertices E, F, G, H. There is a line segment AD. There is a line segment BD. There is a line segment EF. There is a line segment GH. Point A lies on the circle. Point B lies on the circle. Line AD is a radius of the circle. Line BD is a radius of the circle. Point E lies on the major arc. Further, length of line EF is equal to length of line AD and angle ADB is 90 degrees.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H"])

semicircle1 = scene.add.major_arc(A, B, C)
circle1 = scene.add.circle(D)
trapezoid1 = scene.add.isosceles_trapezoid(E, F, G, H)
line_AD = scene.add.line_segment(A, D)
line_BD = scene.add.line_segment(B, D)
line_EF = scene.add.line_segment(E, F)
line_GH = scene.add.line_segment(G, H)

### relationships

scene.relate.point_lies_on(A, circle1)
scene.relate.point_lies_on(B, circle1)
scene.relate.is_radius(line_AD, circle1)
scene.relate.is_radius(line_BD, circle1)
scene.relate.point_lies_on(E, semicircle1)

### Extra relationships

scene.constraint.eq(line_EF.length, line_AD.length)
scene.constraint.eq(scene.angle(scene.get_object('A'), scene.get_object('D'), scene.get_object('B')), 90)

scene.solver.numerical()
scene.plot()

point_lies_on(A, circle1)
point_lies_on(B, circle1)
is_radius(line_AD, circle1)
is_radius(line_BD, circle1)
point_lies_on(E, semicircle1)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I. There is a rhomboid ABCD. There is a minor arc EFG. There is a circle with center H. There is a line segment AC. There is a line segment BD. There is a line segment FG. Line AC and line BD intersect at I. Angle AIB is a right angle. Line FG is a chord of the circle. Point F lies on the circle. Point G lies on the circle. Further, length of line AC equals length of line BD. Further, area of the minor arc EFG equals half the area of the circle.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I"])

rhomboid1 = scene.add.rhomboid(A, B, C, D)
arc1 = scene.add.minor_arc(E, F, G)
circle1 = scene.add.circle(H)
line_AC = scene.add.line_segment(A, C)
line_BD = scene.add.line_segment(B, D)
line_FG = scene.add.line_segment(F, G)

### relationships

scene.relate.lines_intersect_at(line_AC, line_BD, I)
scene.relate.right_angle(A, I, B)
scene.relate.is_chord(line_FG, circle1)
scene.relate.point_lies_on(F, circle1)
scene.relate.point_lies_on(G, circle1)

### Extra relationships

scene.constraint.eq(line_AC.length, line_BD.length)
scene.constraint.eq(arc1.area, (1/2) * circle1.area)

scene.solver.numerical()
scene.plot()

lines_intersect_at(line_AC, line_BD, I)
right_angle(A, I, B)
is_chord(line_FG, circle1)
point_lies_on(F, circle1)
point_lies_on(G, circle1)

scene.constraint.eq(scene.get_object('arc1').area, (1/2) * scene.get_object('circle1').area)


Diagram description: The diagram contains points A, B, C, O, H, Q, M, N, P. There is a triangle ABC. There is a quadrilateral MNOP. There is a circle with center O. There are line segments AH and BC. The circle is the circumcircle of triangle ABC. H is the orthocenter of triangle ABC. Line AH and line BC intersect at H. Q is the midpoint of line BC. Q lies on line BC.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, O, H, Q, M, N, P = scene.add.points(["A", "B", "C", "O", "H", "Q", "M", "N", "P"])

triangleABC = scene.add.triangle(A, B, C)
circleO = scene.add.circle(O)
quadrilateralMNOP = scene.add.quadrilateral(M, N, O, P)
lineAH = scene.add.line_segment(A, H)
lineBC = scene.add.line_segment(B, C)

### relationships

scene.relate.is_circumcircle(circleO, triangleABC)
scene.relate.is_orthocenter(H, triangleABC)
scene.relate.lines_intersect_at(lineAH, lineBC, H)
scene.relate.is_midpoint(Q, lineBC)
scene.relate.point_lies_on(Q, lineBC)

scene.solver.numerical()
scene.plot()

is_circumcircle(circleO, triangleABC)
is_orthocenter(H, triangleABC)
lines_intersect_at(lineAH, lineBC, H)
is_midpoint(Q, lineBC)
point_lies_on(Q, lineBC)


Diagram description: The diagram contains points A, B, C, D, O. There is a triangle ABC. There is a kite ABCD. There is a circle with center O. There is a line segment AD. There is a line segment BC. There is a line segment AC. There is a line segment OA. There is a line segment OC. Point A lies on the circle. Point C lies on the circle. Line OA is a radius of the circle. Line OC is a radius of the circle. Line AD is congruent to line AC.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, O = scene.add.points(["A", "B", "C", "D", "O"])

triangleABC = scene.add.triangle(A, B, C)
kiteABCD = scene.add.kite(A, B, C, D)
circleO = scene.add.circle(O)
line_AD = scene.add.line_segment(A, D)
line_BC = scene.add.line_segment(B, C)
line_AC = scene.add.line_segment(A, C)
line_OA = scene.add.line_segment(O, A)
line_OC = scene.add.line_segment(O, C)

### relationships

scene.relate.point_lies_on(A, circleO)
scene.relate.point_lies_on(C, circleO)
scene.relate.is_radius(line_OA, circleO)
scene.relate.is_radius(line_OC, circleO)
scene.relate.congruent(line_AD, line_AC)

scene.solver.numerical()
scene.plot()

point_lies_on(A, circleO)
point_lies_on(C, circleO)
is_radius(line_OA, circleO)
is_radius(line_OC, circleO)
congruent(line_AD, line_AC)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I, J, K. There is a square with vertices A, B, C, D. There is a parallelogram with vertices E, F, G, H. There is a right triangle with vertices I, J, K. There is a line segment AC. There is a line segment EG. There is a line segment IJ. Square ABCD is similar to the parallelogram EFGH. Points A, C, and E are collinear. Line AC is perpendicular to line EG. Line IJ is an altitude of the right triangle IJK from vertex I. Point J is the orthocenter of the right triangle IJK.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I, J, K = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"])

square1 = scene.add.square(A, B, C, D)
parallelogram1 = scene.add.parallelogram(E, F, G, H)
right_triangle1 = scene.add.right_triangle(I, J, K)
line_AC = scene.add.line_segment(A, C)
line_EG = scene.add.line_segment(E, G)
line_IJ = scene.add.line_segment(I, J)

### relationships

scene.relate.similar(square1, parallelogram1)
scene.relate.collinear(A, C, E)
scene.relate.perpendicular(line_AC, line_EG)
scene.relate.is_altitude(line_IJ, right_triangle1, I)
scene.relate.is_orthocenter(J, right_triangle1)

scene.solver.numerical()
scene.plot()


Diagram description: The diagram contains points A, B, C, D, E, F, G, H. There is a circle with center A. There is a minor arc BC. There is a parallelogram DEFG. There is a line segment BE. There is a line segment CF. There is a line segment DE. There is a line segment AF. Points B, A, and C are collinear. Line BE is a chord of the circle. Line CF intersects line BE at point H. Line AF is a radius of the circle. Line DE is perpendicular to line AF.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H"])

circle1 = scene.add.circle(A)
minor_arc1 = scene.add.minor_arc(A, B, C)
parallelogram1 = scene.add.parallelogram(D, E, F, G)
line_BE = scene.add.line_segment(B, E)
line_CF = scene.add.line_segment(C, F)
line_DE = scene.add.line_segment(D, E)
line_AF = scene.add.line_segment(A, F)

### relationships

scene.relate.collinear(B, A, C)
scene.relate.lines_intersect_at(line_BE, line_CF, H)
scene.relate.is_chord(line_BE, circle1)
scene.relate.is_radius(line_AF, circle1)
scene.relate.perpendicular(line_DE, line_AF)

scene.solver.numerical()
scene.plot()

collinear(B, A, C)
lines_intersect_at(line_BE, line_CF, H)
is_chord(line_BE, circle1)
is_radius(line_AF, circle1)
perpendicular(line_DE, line_AF)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I. There is a trapezoid ABCD. There is a circle with center E. There is an isosceles trapezoid FGHI. There is a line segment AC. There is a line segment BD. There is a line segment EF. Line AC intersects the circle at points A and C. Trapezoid ABCD is similar to isosceles trapezoid FGHI. Line AC is perpendicular to line BD. Line EF is a radius of the circle. Point F lies on the circle. Further, the area of trapezoid ABCD is equal to the area of isosceles trapezoid FGHI, and angle AEF is 90 degrees.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I"])

trapezoid1 = scene.add.trapezoid(A, B, C, D)
circle1 = scene.add.circle(E)
isosceles_trapezoid1 = scene.add.isosceles_trapezoid(F, G, H, I)
line_AC = scene.add.line_segment(A, C)
line_BD = scene.add.line_segment(B, D)
line_EF = scene.add.line_segment(E, F)

### relationships

scene.relate.line_intersects_circle_at(line_AC, circle1, A, C)
scene.relate.similar(trapezoid1, isosceles_trapezoid1)
scene.relate.perpendicular(line_AC, line_BD)
scene.relate.is_radius(line_EF, circle1)
scene.relate.point_lies_on(F, circle1)

### Extra relationships

scene.constraint.eq(trapezoid1.area, isosceles_trapezoid1.area)
scene.constraint.eq(scene.angle(scene.get_object('A'), scene.get_object('E'), scene.get_object('F')), 90)

scene.solver.numerical()
scene.plot()


Diagram description: The diagram contains points A, B, C, D, E, F, G, H. There is a circle with center A. There is an acute triangle with vertices B, C, D. There is a rhombus with vertices E, F, G, H. There is a line segment BD. There is a line segment CF. Line BD is an altitude of the acute triangle from vertex B. The circle is the circumcircle of the acute triangle. Line BD is perpendicular to line CF. Point F lies on the circle. Point G is the midpoint of line CF.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H"])

circle1 = scene.add.circle(A)
acute_tri1 = scene.add.acute_triangle(B, C, D)
rhombus1 = scene.add.rhombus(E, F, G, H)
line_BD = scene.add.line_segment(B, D)
line_CF = scene.add.line_segment(C, F)

### relationships

scene.relate.is_altitude(line_BD, acute_tri1, B)
scene.relate.is_circumcircle(circle1, acute_tri1)
scene.relate.perpendicular(line_BD, line_CF)
scene.relate.point_lies_on(F, circle1)
scene.relate.is_midpoint(G, line_CF)

scene.solver.numerical()
scene.plot()

is_altitude(line_BD, acute_tri1, B)
is_circumcircle(circle1, acute_tri1)
perpendicular(line_BD, line_CF)
point_lies_on(F, circle1)
is_midpoint(G, line_CF)


Diagram description: The diagram contains points A, B, C, D, E, F, G. There is a triangle with points A, B, C. There is a circle with center G. There is a line segment AD. There is a line segment BE. There is a line segment CF. There is a line segment GE. There is a line segment AG. Line AD is a median of triangle ABC from vertex A. Line BE is a median of triangle ABC from vertex B. Point G is the centroid of triangle ABC. The circle with center G is the circumcircle of triangle ABC. Line AG is the angle bisector of angle GAF.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G = scene.add.points(["A", "B", "C", "D", "E", "F", "G"])

triangle1 = scene.add.triangle(A, B, C)
circle1 = scene.add.circle(G)
line_AD = scene.add.line_segment(A, D)
line_BE = scene.add.line_segment(B, E)
line_CF = scene.add.line_segment(C, F)
line_GE = scene.add.line_segment(G, E)
line_AG = scene.add.line_segment(A, G)

### relationships

scene.relate.is_median(line_AD, triangle1, A)
scene.relate.is_median(line_BE, triangle1, B)
scene.relate.is_centroid(G, triangle1)
scene.relate.is_circumcircle(circle1, triangle1)
scene.relate.angle_bisector(G, A, F, line_AG)

scene.solver.numerical()
scene.plot()

is_median(line_AD, triangle1, A)
is_median(line_BE, triangle1, B)
is_centroid(G, triangle1)
is_circumcircle(circle1, triangle1)
angle_bisector(G, A, F, line_AG)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H. There is a rectangle with vertices A, B, C, D. There is an equilateral triangle with vertices E, F, G. There is a circle with center H. There is a line segment AC. There is a line segment EF. There is a line segment HD. Line AC is a diameter of the circle. H is the centroid of the triangle with vertices E, F, G. Line AC is perpendicular to line EF. Point D lies on the circle. Line HD is a radius of the circle.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H"])

rectangle1 = scene.add.rectangle(A, B, C, D)
triangle1 = scene.add.equilateral_triangle(E, F, G)
circle1 = scene.add.circle(H)
line_AC = scene.add.line_segment(A, C)
line_EF = scene.add.line_segment(E, F)
line_HD = scene.add.line_segment(H, D)

### relationships

scene.relate.is_diameter(line_AC, circle1)
scene.relate.is_centroid(H, triangle1)
scene.relate.perpendicular(line_AC, line_EF)
scene.relate.point_lies_on(D, circle1)
scene.relate.is_radius(line_HD, circle1)

scene.solver.numerical()
scene.plot()

is_diameter(line_AC, circle1)
is_centroid(H, triangle1)
perpendicular(line_AC, line_EF)
point_lies_on(D, circle1)
is_radius(line_HD, circle1)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I. There is an isosceles trapezoid ABCD. There is an equilateral triangle EFG. There is a circle with center H. There is a line segment AC. There is a line segment BD. There is a line segment EF. There is a line segment HG. Line AC intersects line BD at point I. Point I is the centroid of trapezoid ABCD. The circle is the circumcircle of triangle EFG. Line HG is a radius of the circle. Line AC is perpendicular to line BD. Further, the length of line AC is equal to the length of line BD. Further, angle AIB is a right angle.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I"])

trapezoid1 = scene.add.isosceles_trapezoid(A, B, C, D)
triangle1 = scene.add.equilateral_triangle(E, F, G)
circle1 = scene.add.circle(H)
line_AC = scene.add.line_segment(A, C)
line_BD = scene.add.line_segment(B, D)
line_EF = scene.add.line_segment(E, F)
line_HG = scene.add.line_segment(H, G)

### relationships

scene.relate.lines_intersect_at(line_AC, line_BD, I)
scene.relate.is_centroid(I, trapezoid1)
scene.relate.is_circumcircle(circle1, triangle1)
scene.relate.is_radius(line_HG, circle1)
scene.relate.perpendicular(line_AC, line_BD)

### Extra relationships

scene.constraint.eq(line_AC.length, line_BD.length)
scene.constraint.eq(scene.angle(scene.get_object('A'), scene.get_object('I'), scene.get_object('B')), 90)

scene.solver.numerical()
scene.plot()

lines_intersect_at(line_AC, line_BD, I)
is_centroid(I, trapezoid1)
is_circumcircle(circle1, triangle1)
is_radius(line_HG, circle1)
perpendicular(line_AC, line_BD)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H. There is a circle with center A. There is a major arc BC on the circle. There is a trapezoid DEFG. There is a line segment DE. There is a line segment GF. There is a line segment DF. There is a line segment EG. Point B lies on the circle. Point C lies on the circle. The extensions of line DE and line GF intersect at point H. Line DF is a chord of the circle. Line EG is a diameter of the circle.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H"])

circle1 = scene.add.circle(A)
major_arc1 = scene.add.major_arc(A, B, C)
trapezoid1 = scene.add.trapezoid(D, E, F, G)
line_DE = scene.add.line_segment(D, E)
line_GF = scene.add.line_segment(G, F)
line_DF = scene.add.line_segment(D, F)
line_EG = scene.add.line_segment(E, G)

### relationships

scene.relate.point_lies_on(B, circle1)
scene.relate.point_lies_on(C, circle1)
scene.relate.line_extensions_intersect_at(line_DE, line_GF, H)
scene.relate.is_chord(line_DF, circle1)
scene.relate.is_diameter(line_EG, circle1)

scene.solver.numerical()
scene.plot()


Diagram description: The diagram contains points A, B, C, D, E, F, G, H. There is a rhombus with vertices A, B, C, D. There is a circle with center E. There is a minor arc with center E, starting at F and ending at G. There is a line segment AC. There is a line segment BD. There is a line segment EF. There is a line segment EG. Line AC is the perpendicular bisector of line BD. Line AC and line BD intersect at point H. Line EF is a radius of the circle. Line EG is a radius of the circle. Point F lies on the circle.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H"])

rhombus1 = scene.add.rhombus(A, B, C, D)
circle1 = scene.add.circle(E)
minor_arc1 = scene.add.minor_arc(E, F, G)
line_AC = scene.add.line_segment(A, C)
line_BD = scene.add.line_segment(B, D)
line_EF = scene.add.line_segment(E, F)
line_EG = scene.add.line_segment(E, G)

### relationships

scene.relate.perpendicular_bisector_at(line_AC, line_BD)
scene.relate.lines_intersect_at(line_AC, line_BD, H)
scene.relate.is_radius(line_EF, circle1)
scene.relate.is_radius(line_EG, circle1)
scene.relate.point_lies_on(F, circle1)

scene.solver.numerical()
scene.plot()


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I. There is a quadrilateral ABCD. There is a rhombus EFGH. There is a circle with center I. There is a line segment AC. There is a line segment BD. There is a line segment EF. There is a line segment IH. Point A lies on the circle. Point C lies on the circle. Line AC is a diameter of the circle. Line AC is perpendicular to line BD. Angle BAD is a right angle.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I"])

quadrilateral1 = scene.add.quadrilateral(A, B, C, D)
rhombus1 = scene.add.rhombus(E, F, G, H)
circle1 = scene.add.circle(I)
line_AC = scene.add.line_segment(A, C)
line_BD = scene.add.line_segment(B, D)
line_EF = scene.add.line_segment(E, F)
line_IH = scene.add.line_segment(I, H)

### relationships

scene.relate.point_lies_on(A, circle1)
scene.relate.point_lies_on(C, circle1)
scene.relate.is_diameter(line_AC, circle1)
scene.relate.perpendicular(line_AC, line_BD)
scene.relate.right_angle(B, A, D)

scene.solver.numerical()
scene.plot()

point_lies_on(A, circle1)
point_lies_on(C, circle1)
is_diameter(line_AC, circle1)
perpendicular(line_AC, line_BD)
right_angle(B, A, D)


Diagram description: The diagram contains points A, B, C, D, E, F, G, H, I. There is a circle with center A. There is a rectangle B C D E. There is a kite F G H I. There is a line segment BD. There is a line segment FH. There is a line segment AC. Point B lies on the circle with center A. Point D lies on the circle with center A. Line BD is a diameter of the circle with center A. Line AC is a radius of the circle with center A. Line BD is perpendicular to line FH.

from pygeox import GeoScene

scene = GeoScene()

### objects

A, B, C, D, E, F, G, H, I = scene.add.points(["A", "B", "C", "D", "E", "F", "G", "H", "I"])

circle1 = scene.add.circle(A)
rectangle1 = scene.add.rectangle(B, C, D, E)
kite1 = scene.add.kite(F, G, H, I)
line_BD = scene.add.line_segment(B, D)
line_FH = scene.add.line_segment(F, H)
line_AC = scene.add.line_segment(A, C)

### relationships

scene.relate.point_lies_on(B, circle1)
scene.relate.point_lies_on(D, circle1)
scene.relate.is_diameter(line_BD, circle1)
scene.relate.is_radius(line_AC, circle1)
scene.relate.perpendicular(line_BD, line_FH)

scene.solver.numerical()
scene.plot()

point_lies_on(B, circle1)
point_lies_on(D, circle1)
is_diameter(line_BD, circle1)
is_radius(line_AC, circle1)
perpendicular(line_BD, line_FH)