Exemple #1
0
    def createPlacement(self):
        scene = Scene()

        triangle = scene.nondegenerate_triangle(labels=('A', 'B', 'C'))
        A, B, C = triangle.points
        A.distance_constraint('B', 5)
        C.distance_constraint('B', 4)
        C.distance_constraint('A', 3)
        scene.incircle(triangle, label='incircle')
        scene.circumcircle(triangle, label='circumcircle')

        return iterative_placement(scene)
from sandbox import Scene
from sandbox.property import ProportionalLengthsProperty

from visualiser import visualise

scene = Scene()

triangle = scene.nondegenerate_triangle(labels=('A', 'B', 'C'))
A, B, C = triangle.points
circ = scene.circumcircle(triangle)
H = scene.orthocentre_point(triangle, label='H')

altitudeA = scene.altitude(triangle, A)
A1 = altitudeA.intersection_point(B.line_through(C), label='A_1')
A2 = altitudeA.intersection_point(circ, label='A_2')
A2.not_equal_constraint(A)

altitudeB = scene.altitude(triangle, B)
B1 = altitudeB.intersection_point(A.line_through(C), label='B_1')
B2 = altitudeB.intersection_point(circ, label='B_2')
B2.not_equal_constraint(B)

altitudeC = scene.altitude(triangle, C)
C1 = altitudeC.intersection_point(B.line_through(A), label='C_1')
C2 = altitudeC.intersection_point(circ, label='C_2')
C2.not_equal_constraint(C)

A.angle(B, C).is_acute_constraint(comment='assumption')
B.angle(A, C).is_acute_constraint(comment='assumption')
C.angle(B, A).is_acute_constraint(comment='assumption')