## how converting NURB to bezier ?

### how converting NURB to bezier ?

Hi (sorry for my english)

first, i'm not a mathematician ! :-)
how can i convert NURB-Spline to a BEZIER-Spline ? the best way for me
is a simple java-source that use "GeneralPath" to draw/simulate a NURB.
Java2D support only beziers with quadric and cubic - curves. Is there a
simple way to do that ?

Thanks
Remo

Sent via Deja.com http://www.deja.com/

### how converting NURB to bezier ?

Not easy,

You will have to reduce the order of the NURB to cubic (may not be possible
for all curves) and then increase the multiplicity of each knot to 4 by
inserting duplicate knot values.

The NURBS Book by Les Piegl and Wayne Tiller has excellent pseudo-c
examples.

Good Luck

Icabod

### how converting NURB to bezier ?

Quote:> You will have to reduce the order of the NURB to cubic (may not be
possible
> for all curves) and then increase the multiplicity of each knot to 4 by
> inserting duplicate knot values.

> The NURBS Book by Les Piegl and Wayne Tiller has excellent pseudo-c
> examples.

> Good Luck

> Icabod

Not very precise what you write!!!!!!

you say:

1- reduce the order of the NURB to cubic
2- "increase multiplicity to 4 ..."

both points are not "very" True:

1- bezier can have any degree you want -> but: with higher degree it become
difficult to control the curve.
1- a bezier curve doesn't have interior knots
2- so: the number of control points is equal the Order
since:
bezier must be clamped -> means: the curve must correspond to the first
and last control point
and:
to do this clamp: the first and last knots must have multiplicity
order.
m + 1 -> number of knots
n + 1 -> number of control points
p -> degree
p +1->order

m +1 =  (n+1)  + (p+1);

so to convert a nurbs to a bezier:
1- each knot-span [a, b) must be transformed to [a...a, b..b] -> a and b
each with multiplicity equal order.
2- so you get a sequence of Bezier-curves
- each with a knot-vector without interior knots
- each with number of control points equal the order of the curve

N.B. if you need a degree-Reduction-Algo, i wrote a very good one with 80%
better Results than
the one present in the "Nurbs-Book" .

### how converting NURB to bezier ?

I am sorry for the imprecision of my response.

However it is a reasonable synopsis of the neccasary steps.

Also while a Bezier can have any order the initiator of this thread
specified that he was limited to quadric (??? quadratic) and cubic Beziers.

Icabod

### how converting NURB to bezier ?

G'day,

I would like to see the code and the theory for your
degree reduction algorithm. My email address is above.

dfr

!! You will have to reduce the order of the NURB to cubic (may not be
!possible
!! for all curves) and then increase the multiplicity of each knot to 4 by
!! inserting duplicate knot values.
!!
!! The NURBS Book by Les Piegl and Wayne Tiller has excellent pseudo-c
!! examples.
!!
!! Good Luck
!!
!! Icabod
!!
!
!
!Not very precise what you write!!!!!!
!
!you say:
!
!1- reduce the order of the NURB to cubic
!2- "increase multiplicity to 4 ..."
!
!both points are not "very" True:
!
!1- bezier can have any degree you want -! but: with higher degree it become
!difficult to control the curve.
!1- a bezier curve doesn't have interior knots
!2- so: the number of control points is equal the Order
!   since:
!     bezier must be clamped -! means: the curve must correspond to the first
!and last control point
!      and:
!        to do this clamp: the first and last knots must have multiplicity
!order.
!       m + 1 -! number of knots
!        n + 1 -! number of control points
!        p -! degree
!        p +1-!order
!
!        m +1 =  (n+1)  + (p+1);
!
!so to convert a nurbs to a bezier:
!1- each knot-span [a, b) must be transformed to [a...a, b..b] -! a and b
!each with multiplicity equal order.
!2- so you get a sequence of Bezier-curves
!    - each with a knot-vector without interior knots
!    - each with number of control points equal the order of the curve
!
!
!N.B. if you need a degree-Reduction-Algo, i wrote a very good one with 80%
!better Results than
!        the one present in the "Nurbs-Book" .
!

!

### how converting NURB to bezier ?

uhmmmmm i don't really know!!!
will you protect my Copyright ?
or should i introduce like "FERMAT" a kind of : "Coder Last presumption" ? :
:)

if you are good in Parametric Definition of Curves and Surfaces.
Maybe we could write a Book together.
I've also written Poly to Nurbs Converter (positional c0).
Or if you want i could write an Executable so you can test both algo

Robert Nkolo

> G'day,

> I would like to see the code and the theory for your
> degree reduction algorithm. My email address is above.

> dfr

> !! You will have to reduce the order of the NURB to cubic (may not be
> !possible
> !! for all curves) and then increase the multiplicity of each knot to 4 by
> !! inserting duplicate knot values.
> !!
> !! The NURBS Book by Les Piegl and Wayne Tiller has excellent pseudo-c
> !! examples.
> !!
> !! Good Luck
> !!
> !! Icabod
> !!
> !
> !
> !Not very precise what you write!!!!!!
> !
> !you say:
> !
> !1- reduce the order of the NURB to cubic
> !2- "increase multiplicity to 4 ..."
> !
> !both points are not "very" True:
> !
> !1- bezier can have any degree you want -! but: with higher degree it
become
> !difficult to control the curve.
> !1- a bezier curve doesn't have interior knots
> !2- so: the number of control points is equal the Order
> !   since:
> !     bezier must be clamped -! means: the curve must correspond to the
first
> !and last control point
> !      and:
> !        to do this clamp: the first and last knots must have multiplicity
> !order.
> !       m + 1 -! number of knots
> !        n + 1 -! number of control points
> !        p -! degree
> !        p +1-!order
> !
> !        m +1 =  (n+1)  + (p+1);
> !
> !so to convert a nurbs to a bezier:
> !1- each knot-span [a, b) must be transformed to [a...a, b..b] -! a and b
> !each with multiplicity equal order.
> !2- so you get a sequence of Bezier-curves
> !    - each with a knot-vector without interior knots
> !    - each with number of control points equal the order of the curve
> !
> !
> !N.B. if you need a degree-Reduction-Algo, i wrote a very good one with
80%
> !better Results than
> !        the one present in the "Nurbs-Book" .
> !

> !

### how converting NURB to bezier ?

> > G'day,

> > I would like to see the code and the theory for your
> > degree reduction algorithm. My email address is above.

Quote:> uhmmmmm i don't really know!!!
> will you protect my Copyright ?
> or should i introduce like "FERMAT" a kind of : "Coder Last presumption" ?
:
> :)

> if you are good in Parametric Definition of Curves and Surfaces.
> Maybe we could write a Book together.

Robert, take a look at the book

An Introduction to NURBS With Historical Perspective
by David F. Rogers
Morgan Kaufmann Publishers
ISBN 1-55860-669-6
appeared Summer of 2000

Does the author's name sound familiar?  :)

--
Dave Eberly

http://www.magic-software.com

### how converting NURB to bezier ?

you are right,
uhmmmmmm Cool !

do you write this one?:
3D Game Engine Design : A Practical Approach to Real-Time Computer Graphics

I'm very impressed!!!!!!!!!

Robert Nkolo

> > > G'day,

> > > I would like to see the code and the theory for your
> > > degree reduction algorithm. My email address is above.
> > > Thanks in advance.

> > uhmmmmm i don't really know!!!
> > will you protect my Copyright ?
> > or should i introduce like "FERMAT" a kind of : "Coder Last presumption"
?
> :
> > :)

> > if you are good in Parametric Definition of Curves and Surfaces.
> > Maybe we could write a Book together.

> Robert, take a look at the book

>   An Introduction to NURBS With Historical Perspective
>   by David F. Rogers
>   Morgan Kaufmann Publishers
>   ISBN 1-55860-669-6
>   appeared Summer of 2000

> Does the author's name sound familiar?  :)

> --
> Dave Eberly

> http://www.magic-software.com

Converting "NURBS" back into a "NURB CURVE" with "edit stock" in r2.5 was no
problem,
but how can I do this in r3.0?

I have done some error with the surface creating and need to do surface
again.

Thanx:))