Download presentation

Presentation is loading. Please wait.

Published byKierra Kimberly Modified over 3 years ago

1
CLASS 8 SPLINES CS770/870

2
Splines Smooth piecewise curves Mostly cubic polynomials Parametric curves Control points Knots Some interpolate (= pass through) the control points, Others do not.

3
Hierarchical Bicubic B-Splines

4
Hermite splines Define end points and gradients. Continuity C0 end points match C1 1 st derivatives match C2 2 nd derivatives match

5
Splines are parametric polynomials y u y = a +bu + cu 2 +du 3 Splines are arrange to have continuity at the joins (knots) C 0 : The curves touch at the join point. C 1 : The curves also share a common tangent direction at the join point. C 2 : The curves also share a common center of curvature at the join point. y u Continuity At knot

6
Hermites C1 continuous Matching end points, matching gradients Example: u 1 = 0, y 1 = 2.0, dy 1 /du 1 = 1 u 2 = 1, y 2 = 3.0, dy 2 /du 2 = -2 Find a,b,c,d to define the curve Write out the equation y = a +bu + cu 2 +du 3 dy/du = b + 2cu +3du 2

7
General derivation For any (y1,g1) (y2,g2)

8
In C++ _ay = y1; _by = dy1; _cy = 3.0f*(y2 - y1) - 2.0*dy1 - dy2; _dy = 2.0f*(y1 - y2) + dy1 + dy2;

9
2D Hermites Just do it twice, y is a function of u. x is a function of u. To get a 3D Hermite, just do it 3 times for x, for y and for z. x,y,z all are functions of a common u.

10
How to calculate normals For the start just define a normal at right angles to the starting forward vector. E.g. start track horizontally F(0,0,1), S(1,0,0), T(010); Do this by defining the gradients. dx/du = 0; dy/dz = 1; dz/du = 1; For the next segment, 0f the 100 segments. Take the cross product of the new forward vector with the old top vector (result a new sideways vector). Take the cross product of the new sideways vector with the new forward vector to get the new top vector.

11
Construct box Use the vectors. Center +/- halfwidth to get the sides. Center – thickness to define the bottom. Use the normals in the rendering loop.

12
To make the view follow the object Use gluLookAt(ex,ey,ez,atx,aty,atz,upx,upy,upz); The at position, should be the center of the ball. The up direction should use the top vector Case 1: Wingman, View eye position using the sideways vector Case 2: Above and behind. Use the up vector and the forward vector to define the eye position.

13
typedef float Point3f[3]; Point3f *BoxTopL, *BoxTopR, *BoxBotL, *BoxBotR; BoxTopL = new Point3f[len]; BoxTopR = new Point3f[len]; BoxBotL = new Point3f[len]; BoxBotR = new Point3f[len]; Draw the top, the bottom, the left, the right.

14
Natural Cubic splines If we have n control points and n splines we can make a set of curves. Such that end points match (2 dof). First derivatives match (1 dof). Second derivatives match (2 dof). = anglular acceleration But we lose local control. Solve a system of equations.

Similar presentations

OK

Slide 127 October 1999CS 318 - Computer Graphics (Top Changwatchai) Review of Spline Concepts Sections 10-6 to 10-13 in Hearn & Baker Splines can be 2D.

Slide 127 October 1999CS 318 - Computer Graphics (Top Changwatchai) Review of Spline Concepts Sections 10-6 to 10-13 in Hearn & Baker Splines can be 2D.

© 2018 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on you can win lyrics Ppt on network layer design issues Ppt on pc based industrial automation Ppt on soft skills for students Ppt on life study of mathematical quotes Ppt on the art of war machiavelli Ppt on obesity diet pills Download maths ppt on circles for class 9 Ppt on product life cycle with examples Ppt on cloud computing security issues in infrastructure as a service