KitWallace / FO

4 stars 0 forks source link

Re-structure path operators #16

Open KitWallace opened 2 years ago

KitWallace commented 2 years ago

Shift to a list of path operators, each with their own parameters - this allows for hiding rarely used ones, adding new miscellaneous ones, declutters the path object and allows them to be performed in a user defined order

Path operators (and parameters)

Equalize (stepsize) Scale (keep aspect ratio, scalex, scaley) Skew ( alpha,beta) ? Inset/outset ( +/- distance) - useful for makimg faces for polyhedra with the correct bevel Position ( x,y) Rotate (degrees) Align ( % ) Subsequence (start ,end) - but only when open paths are sorted Fourier smoothing (amplitude theshold, frequencey threshold) Weighted smoothing ( iterations) Random radial perturbation (p) Modulate (with a sublist of modulation functions)

Tri Grid (if base is a triangle) Quad grid (if base is a quad) Polygon spiral ( if base is a polygon) Path generators

Function library -two kinds : parametric in t (0..360) ; total path ; Ovoid, Polygon ,

Point list (points copied and pasted form other tools - SVG, fractal , Euler paths..)

would need a reordering interface (move up, move down) visual programming would be great here)

KitWallace commented 2 years ago

simplified UI means that there is less call for this redesign - operators need to be computered in two places Path.to_points (used for point interpolation) and design.create_layers_by_parameter if parametric - should be done in one place only ( perhaps by making each layer a path)

could add skew and inset