Employing Pythagorean Hodograph Curves for Artistic Patterns Conference of PhD Students in Computer Science June 29 - July 2, 2010 Szeged, Hungary Gergely Klár, Gábor Valasek Eötvös Loránd University Faculty of Informatics
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)
Our focus 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 curvecurve’s hodograph
Let the parameterization be such that For some integral polynomial The arc-length can be expressed in closed-form Pythagorean Hodographs
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. Pythagorean Hodographs
PH curves’ hodographs satisfy: PH curves of degree n have n+3 degrees of freedom General polynomials of degree n have 2n+2 degrees of freedom
Pythagorean Hodographs 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
Design process
Future work Integration into vector graphics systems More streamlined workflow Use of improved transition curves