SLIDE 1
Neatening sketched strokes using piecewise French Curves James - - PowerPoint PPT Presentation
Neatening sketched strokes using piecewise French Curves James - - PowerPoint PPT Presentation
Neatening sketched strokes using piecewise French Curves James McCrae, Karan Singh French Curves Physical tools, used to model curves French Curves Smoothly connect pre-determined curve points French Curves French Curves Digital French
SLIDE 2
SLIDE 3
French Curves
Smoothly connect pre-determined curve points
SLIDE 4
French Curves
SLIDE 5
French Curves
SLIDE 6
Digital French Curves
Karan Singh. 1999. Interactive curve design using digital French curves. Interactive 3D Graphics (I3D '99). ACM, New York, NY, USA, 23-30.
Two-handed manipulation of digitized French curves (represented as cubic NURBS curves)
SLIDE 7
Motivation
The idea: French curves + sketch interface
SLIDE 8
Motivation
The idea: French curves + sketch interface Why?
- Smooth, high quality
- Specific style/standard
- Fast to learn
- Easy curve modelling
SLIDE 9
Problem Statement
Specifically, given input polyline
SLIDE 10
Problem Statement
Specifically, given input polyline French curve input polyline
SLIDE 11
Problem Statement
Specifically, given input polyline French curve input polyline reconstruct the polyline
SLIDE 12
Approach
SLIDE 13
Approach
SLIDE 14
Approach
SLIDE 15
Approach
SLIDE 16
Approach
SLIDE 17
Curvature Profiles
SLIDE 18
Curvature Profiles
Discrete curvature estimator:
SLIDE 19
Optimal Curvature Fit
SLIDE 20
Optimal Curvature Fit
Two parts:
- 1. Optimal French curve piece for segment of input
- 2. Optimal segmentation of input curve profile
SLIDE 21
- 1. Optimal French curve piece for segment of input
Solution: Iterate over French curve profiles:
Optimal Curvature Fit
French curve k's profile (gk) Input stroke segment profile (f)
SLIDE 22
- 1. Optimal French curve piece for segment of input
Q: What about closed curves (as all physical French curves would be)?
Optimal Curvature Fit
French curve k's profile (gk) Input stroke segment profile (f)
SLIDE 23
- 1. Optimal French curve piece for segment of input
A: Repeat French curve's profile
Optimal Curvature Fit
SLIDE 24
- 1. Optimal French curve piece for segment of input
Q: Physical French curves can be flipped upside down to produce other curves, address that?
Optimal Curvature Fit
SLIDE 25
- 1. Optimal French curve piece for segment of input
A: At each position, we perform a second evaluation of Efit, negating curvature and reversing arc length direction:
Optimal Curvature Fit
“flip” gk
SLIDE 26
Optimal Curvature Fit
Two parts:
- 1. Optimal French curve piece for segment of input
- 2. Optimal segmentation of input curve profile
SLIDE 27
- 2. Optimal segmentation of input curve profile
Solution: Use dynamic programming:
Efit(i,j): fit error of optimal French curve piece with points i..j of input curve Ecost: penalty for using additional French curve piece
Optimal Curvature Fit
SLIDE 28
- 2. Optimal segmentation of input curve profile
Optimal Curvature Fit
Ecost = 0.0 50+ pieces Ecost = 0.2 10 pieces Ecost = 0.4 5 pieces
SLIDE 29
French Curve Reconstruction
SLIDE 30
French Curve Reconstruction
- Rotate/translate optimal
pieces to input segment endpoints
- French curve pieces are
piecewise clothoid*, each G2 continuous
*Refer to: James McCrae, Karan Singh. Sketching piecewise clothoid curves, SBIM 2008.
SLIDE 31
Interpolating Reconstruction
SLIDE 32
Interpolating Reconstruction
- Adjacent pieces may not
have perfect alignment
SLIDE 33
Interpolating Reconstruction
Produces G2 continuity between French curve pieces Blending function:
SLIDE 34
Interpolating Reconstruction
Interpolation used for “nearly closed” input
SLIDE 35
Results
SLIDE 36
Results
SLIDE 37
Results
SLIDE 38
Results
SLIDE 39
Results
SLIDE 40
Results
SLIDE 41
Summary
We present an algorithm to use French curves with a sketch interface Our approach:
- Creates a globally optimal input segmentation
- Selects curvature-optimal French curve pieces
- Balances number of French curve pieces and
global curvature error
- Produces G2 continuous curves
- Runs interactively (for reasonable lengths)
SLIDE 42