feat: add line-foot construction method (#48)

With this PR, the adapptlet appears to handle Joyce's entire Euclid Book I.

Reviewed-on: #48
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
This commit is contained in:
Glen Whitney 2023-11-27 04:21:06 +00:00 committed by Glen Whitney
parent 52272ff728
commit d024fcfa31
1 changed files with 11 additions and 0 deletions

View File

@ -728,6 +728,17 @@ classHandler: Record<JoyceClass, ClassHandler> :=
commands.push `${aux} = Translate(${source}, ${displacement})`
auxiliaries.push aux
ends[1] = aux
'foot'
pt := args.subpoints
unless pt then return
destination := args.plane
? args.plane[0]
: `Line(${pt[1]},${pt[2]})`
ends[0] = pt[0]
commands.push
`${aux} = ClosestPoint(${destination}, ${pt[0]})`
auxiliaries.push aux
ends[1] = aux
'parallel'
unless args.subpoints then return
[newStart, oldStart, oldEnd] := args.subpoints