Exemplo n.º 1
0
    def createScene(self):
        scene = Scene()

        triangle = scene.nondegenerate_triangle(labels=('A', 'B', 'C'))
        A, B, C = triangle.points
        altitudeA = scene.altitude(triangle, A)
        altitudeB = scene.altitude(triangle, B)
        A1 = altitudeA.intersection_point(B.line_through(C), label='A1')
        B1 = altitudeB.intersection_point(A.line_through(C), label='B1')

        C.angle(A, B).is_acute_constraint()

        return scene
Exemplo n.º 2
0
from sandbox import Scene
from sandbox.property import PointOnLineProperty
from sandbox.util import LazyComment

from visualiser import visualise

scene = Scene()

triangle = scene.nondegenerate_triangle(labels=('A', 'B', 'C'))
A, B, C = triangle.points
altitudeA = scene.altitude(triangle, A)
altitudeB = scene.altitude(triangle, B)
altitudeC = scene.altitude(triangle, C)
D = altitudeA.intersection_point(B.line_through(C), label='D')
E = altitudeB.intersection_point(A.line_through(C), label='E')
F = altitudeC.intersection_point(A.line_through(B), label='F')
H = altitudeA.intersection_point(altitudeB, label='H')
#A.angle(B, C).is_obtuse_constraint()
A.angle(B, C).is_acute_constraint(comment='assumption')
B.angle(A, C).is_acute_constraint(comment='assumption')
C.angle(A, B).is_acute_constraint(comment='assumption')

prop = PointOnLineProperty(F, C.segment(H), True)

visualise(scene,
          prop,
          title='Altitudes of (acute) triangle',
          task=[
              LazyComment('%s is a non-degenerate triangle', triangle),
              LazyComment('%s is an altitude of %s', A.segment(D), triangle),
              LazyComment('%s is an altitude of %s', B.segment(E), triangle),