以下是我关于三点弧/圆的函数:
[color=GREEN];; 3-Point Arc - Lee Mac[/color][color=GREEN];; Returns the Center, Start/End Angle, Radius of the[/color][color=GREEN];; Arc defined by three supplied points.[/color]([color=BLUE]defun[/color] LM:3PArc ( p1 p2 p3 [color=BLUE]/[/color] cn m1 m2 ) ([color=BLUE]setq[/color] m1 (mid p1 p2) m2 (mid p2 p3) ) ([color=BLUE]if[/color] ([color=BLUE]setq[/color] cn ([color=BLUE]inters[/color] m1 ([color=BLUE]polar[/color] m1 ([color=BLUE]+[/color] ([color=BLUE]angle[/color] p1 p2) ([color=BLUE]/[/color] [color=BLUE]pi[/color] 2.)) 1.0) m2 ([color=BLUE]polar[/color] m2 ([color=BLUE]+[/color] ([color=BLUE]angle[/color] p2 p3) ([color=BLUE]/[/color] [color=BLUE]pi[/color] 2.)) 1.0) [color=BLUE]nil[/color] ) ) ([color=BLUE]append[/color] ([color=BLUE]list[/color] cn) ([color=BLUE]if[/color] (LM:Clockwise-p p1 p2 p3) ([color=BLUE]list[/color] ([color=BLUE]angle[/color] cn p3) ([color=BLUE]angle[/color] cn p1)) ([color=BLUE]list[/color] ([color=BLUE]angle[/color] cn p1) ([color=BLUE]angle[/color] cn p3)) ) ([color=BLUE]list[/color] ([color=BLUE]distance[/color] cn p1)) ) ))[color=GREEN];; 3-Point Circle - Lee Mac[/color][color=GREEN];; Returns the Center and Radius of the Circle defined[/color][color=GREEN];; by three supplied points.[/color]([color=BLUE]defun[/color] LM:3PCircle ( p1 p2 p3 [color=BLUE]/[/color] cn m1 m2 ) ([color=BLUE]setq[/color] m1 (mid p1 p2) m2 (mid p2 p3) ) ([color=BLUE]if[/color] ([color=BLUE]setq[/color] cn ([color=BLUE]inters[/color] m1 ([color=BLUE]polar[/color] m1 ([color=BLUE]+[/color] ([color=BLUE]angle[/color] p1 p2) ([color=BLUE]/[/color] [color=BLUE]pi[/color] 2.)) 1.0) m2 ([color=BLUE]polar[/color] m2 ([color=BLUE]+[/color] ([color=BLUE]angle[/color] p2 p3) ([color=BLUE]/[/color] [color=BLUE]pi[/color] 2.)) 1.0) [color=BLUE]nil[/color] ) ) ([color=BLUE]list[/color] cn ([color=BLUE]distance[/color] cn p1)) ))[color=GREEN];; Midpoint - Lee Mac[/color][color=GREEN];; Returns the midpoint of two points[/color]([color=BLUE]defun[/color] mid ( a b ) ([color=BLUE]mapcar[/color] ([color=BLUE]function[/color] ([color=BLUE]lambda[/color] ( a b ) ([color=BLUE]/[/color] ([color=BLUE]+[/color] a b) 2.0))) a b))[color=GREEN];; Clockwise-p - Lee Mac[/color][color=GREEN];; Returns T if p1,p2,p3 are clockwise oriented[/color]([color=BLUE]defun[/color] LM:Clockwise-p ( p1 p2 p3 ) ([color=BLUE]<[/color] ([color=BLUE]*[/color] ([color=BLUE]-[/color] ([color=BLUE]car[/color] p2) ([color=BLUE]car[/color] p1)) ([color=BLUE]-[/color] ([color=BLUE]cadr[/color] p3) ([color=BLUE]cadr[/color] p1))) ([color=BLUE]*[/color] ([color=BLUE]-[/color] ([color=BLUE]cadr[/color] p2) ([color=BLUE]cadr[/color] p1)) ([color=BLUE]-[/color] ([color=BLUE]car[/color] p3) ([color=BLUE]car[/color] p1))) ))
弧->凸出从我的凸出转换函数集。