Ho un vecchio plotter che non può gestire la stampa di vere spirali. Ho bisogno di aiuto per sviluppare un algoritmo per approssimare una spirale.
Ecco un sotto-script LISP che ho scritto che usa semicerchi di vari raggi per disegnare una spirale:
(setq inner_radius 1e3) ; The spiral grows from inner radius to outer radius
(setq coil_thickness 35) ; This is the half-pitch of the spiral, pitch is 70
(setq outer_radius (+ 2.4e3 (* 2 coil_thickness)))
(while (< inner_radius outer_radius)
(setq P1 (list 0 inner_radius))
(setq P2 (list inner_radius 0))
(setq P3 (list 0 (* -1 inner_radius)))
(setq P4 (list (- (- inner_radius) coil_thickness) coil_thickness))
(setq P5 (list 0 (+ inner_radius (* coil_thickness 2))))
(command "ARC" P1 P2 P3) ; Draws a 3 point arc through P1, P2 and P3
(command "ARC" P3 P4 P5) ; Draws a 3 point arc through P3, P4 and P5
(setq inner_radius (+ inner_radius (* coil_thickness 2)))
)
Sto usando AutoCAD
per implementare lo script. Il codice qui è un cop-out: posso implementare una vera spirale in AutoCAD
ma il plotter, che lo traccerà, è datato e non è in grado di gestire una vera spirale. Può gestire solo archi di cerchio e segmenti di linea. Sto cercando un metodo che possa implementare una migliore approssimazione della spirale. Ad esempio, ho provato a pensare a quartcircles (invece dei semicerchi che ho usato nella suddetta sotto-sceneggiatura), ma non sono riuscito a trovare uno schema praticabile.