Draw some extra line/circles for illustration purpose.
(self, name: str, args: list[Point])
| 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, |
no test coverage detected