280 likes | 334 Views
Conference of PhD Students in Computer Science. Employing Pythagorean Hodograph Curves for Artistic Patterns. Gergely Kl ár, Gábor Valasek Eötvös Loránd University Faculty of Informatics. June 29 - July 2, 2010 Szeged, Hungary. Goal.
E N D
Conference of PhD Students in Computer Science Employing Pythagorean Hodograph Curves for Artistic Patterns Gergely Klár, Gábor Valasek Eötvös Loránd University Faculty of Informatics June 29 - July 2, 2010 Szeged, Hungary
Goal • Create a tool to aid the design of aesthetical, fair curves • In particular design element creator for vines, swirls, swooshes and floral components
Previous work • Floral components are popular elements in both ornamental and contemporary abstract design • Tools can aid among other things: • Generation of ornamental elements • Generation of ornamental patterns
Previous work • Plants generated with L-systems, proposed by Prusinkiewicz and Lindenmayer
Previous work • Wong et. al. proposed a method for filling a region of interest with ornaments using proxy objects that can be replaced by arbitrary ornamental elements
Previous work • Xu and Mould created ornamental patters by simulating a charged particle's movement in a magnetic field (magnetic curves)
Ourfocus • We concentrate on using polynomial curves for element design • Let us presume that a pleasing curve has a smooth and monotone curvature • Farin's definition: • A curve is fair if its curvature plot is continuous and consists of only a few monotone pieces • A fair curve should only have curvature extrema where the designer explicitly states
Our focus • To satisfy the fairness conditions we use G2 splines, that consist of spiral segments • A spiral is a curved line segment whose curvature varies monotonically with arc-length
Designer control • An intuitive way to control our curves is required • Use hiearchy of circles:
Designer control – an alternative • If we let the user specify the curve segment’s starting- and endpoints on the control circles, we can formulate the problem as geometric Hermite interpolation
Designer control – an alternative • Given are position, tangent, and curvature data at each the endpoint • Find a Bézier curve which reconstructs these quantities at it’s endpoints • These are 2x4 scalar constraints on each segment Position: 2 scalar Tangent: 1 scalar Curvature: 1 scalar
Designer control – an alternative Cubic Bézier solution for GH • A cubic Bézier curve has 8 scalar degrees of freedom • A quadratic equation system results from
Designer control – an alternative Cubic Bézier solution for GH • With appropriate geometric constraints on position, tangent and curvature the following system has positive real roots • Resulting curve is not a spiral
Designer control • Let us use Pythagorean Hodograph spirals for the transition curves curve curve’s hodograph
PythagoreanHodographs • Let the parameterization be such that • For some integral polynomial • The arc-lengthcan be expressed in closed-form
PythagoreanHodographs Theorem: the Pythagorean condition for polynomials holds if and only if they can be expressed in terms of other polynomials as where u(t) and v(t) are relative primes.
PythagoreanHodographs • PH curves’ hodographs satisfy: • PH curves of degree n have n+3degrees of freedom • General polynomials of degree n have 2n+2 degrees of freedom
PythagoreanHodographs • Arc-length is a polynomial • Offset of a degree n PH curve is a rational polynomial of degree 2n-1 • For practical usage • Cubic PH curves cannot have an inflection point • We use quintic PH curves
Method • Let the user create a hierarchy of control circles • Create spiral segments between a node and its descendants • Three cases are possible: • Circles can be connected by an S-shaped circle-to-circle curve • Circles can be connected by a C-shaped circle-in-circle curve • The circles cannot be connected
Circle-to-circle transition • The circles have to be non-touching and non-overlapping • We used the work of Walton and Meek to define the quintic PH curve’s control points
Circle-to-circle transition • The circle centres have to be within a certain distance (depending on their radii) • We have to solve • Where
Circle-in-circle transition • A fully contained circle is joined to its ancestor if such transition is possible • The conditions and the derivation of control points can be found in Habib and Sakai’s work
Circle-in-circle transition • Constraints on the radius of the smaller circle and its distance from the big circle • In our tool the user only specifies that a circle is needed within a given control circle, it’s position and radius will be computed automatically • The resulting smaller circle can be adjusted within the valid range of solutions
Export • Since most vector graphics systems support cubic Bézier curve’s we provide export in such format • The quintic Bézier curve is approximated by cubic Bézier segments
Future work • Integration into vector graphics systems • More streamlined workflow • Use of improved transition curves