MCPcopy Create free account
hub / github.com/google-deepmind/alphageometry / additionally_draw

Method additionally_draw

graph.py:2486–2534  ·  view source on GitHub ↗

Draw some extra line/circles for illustration purpose.

(self, name: str, args: list[Point])

Source from the content-addressed store, hash-verified

2484 yield x, y, m, n
2485
2486 def additionally_draw(self, name: str, args: list[Point]) -> None:
2487 """Draw some extra line/circles for illustration purpose."""
2488
2489 if name in ['circle']:
2490 center, point = args[:2]
2491 circle = self.new_node(Circle, f'({center.name},{point.name})')
2492 circle.num = nm.Circle(center.num, p1=point.num)
2493 circle.points = center, point
2494
2495 if name in ['on_circle', 'tangent']:
2496 center, point = args[-2:]
2497 circle = self.new_node(Circle, f'({center.name},{point.name})')
2498 circle.num = nm.Circle(center.num, p1=point.num)
2499 circle.points = center, point
2500
2501 if name in ['incenter', 'excenter', 'incenter2', 'excenter2']:
2502 d, a, b, c = [x for x in args[-4:]]
2503 a, b, c = sorted([a, b, c], key=lambda x: x.name.lower())
2504 circle = self.new_node(Circle, f'({d.name},h.{a.name}{b.name})')
2505 p = d.num.foot(nm.Line(a.num, b.num))
2506 circle.num = nm.Circle(d.num, p1=p)
2507 circle.points = d, a, b, c
2508
2509 if name in ['cc_tangent']:
2510 o, a, w, b = args[-4:]
2511 c1 = self.new_node(Circle, f'({o.name},{a.name})')
2512 c1.num = nm.Circle(o.num, p1=a.num)
2513 c1.points = o, a
2514
2515 c2 = self.new_node(Circle, f'({w.name},{b.name})')
2516 c2.num = nm.Circle(w.num, p1=b.num)
2517 c2.points = w, b
2518
2519 if name in ['ninepoints']:
2520 a, b, c = args[-3:]
2521 a, b, c = sorted([a, b, c], key=lambda x: x.name.lower())
2522 circle = self.new_node(Circle, f'(,m.{a.name}{b.name}{c.name})')
2523 p1 = (b.num + c.num) * 0.5
2524 p2 = (c.num + a.num) * 0.5
2525 p3 = (a.num + b.num) * 0.5
2526 circle.num = nm.Circle(p1=p1, p2=p2, p3=p3)
2527 circle.points = (None, None, a, b, c)
2528
2529 if name in ['2l1c']:
2530 a, b, c, o = args[:4]
2531 a, b, c = sorted([a, b, c], key=lambda x: x.name.lower())
2532 circle = self.new_node(Circle, f'({o.name},{a.name}{b.name}{c.name})')
2533 circle.num = nm.Circle(p1=a.num, p2=b.num, p3=c.num)
2534 circle.points = (a, b, c)
2535
2536 def add_clause(
2537 self,

Callers 1

add_clauseMethod · 0.95

Calls 2

new_nodeMethod · 0.95
footMethod · 0.80

Tested by

no test coverage detected