Highlighted

A common solution of NURBS-Intersection

Experimenter
Experimenter

Dear All,

 

I believe many of you are familiar with NURBS, so you know there is only one known algorithm to calculate the point of NURBS curve, which is De Boor' algorithm or so called Basis function. But if I tell you I have developed the second algorithm, which is my Knots-Equation and it is easier to understand and faster in execution. May be you won't believe me, it is ok, I like skeptics. If you doubt about then welcome to visit my NURBS-X site to review the detail.

 

Enclosed is a sample piece of intersection data for two NURBS curves.

SolidEdge-2015.png

Blue NURBS -- Nonuniform, degree: 3,  Ring-mode: ON;
  Control points:  10;
  P00(157.00, 186.00),  P01(306.00, 326.00),  P02(484.00, 180.00),  P03(398.00, 113.00),  P04(350.00, 219.00),  P05(276.00, 219.00),
  P06(234.00, 128.00),  P07(157.00, 186.00),  P08(306.00, 326.00),  P09(484.00, 180.00)
  Knots vector:  14;
  {    0.00,    1.00,    1.00,    4.00,   11.00,   18.00,   20.00,   25.00,   27.00,   27.00,   30.00,   37.00,   44.00,   46.00 }
  Control points of poly-Bezier:  22;
  VALID   (242.413529411764670, 249.670588235294080),  (337.411764705882380, 300.235294117647020),  (410.705882352941160, 240.117647058823540),
  VALID   (428.540441176470610, 195.402573529411770),  (446.375000000000000, 150.687500000000000),  (408.750000000000000, 121.375000000000000),
  VALID   (381.722222222222230, 156.083333333333340),  (374.000000000000000, 166.000000000000000),  (367.142857142857110, 181.142857142857140),
  VALID   (357.546485260770960, 191.959183673469400),  (333.555555555555540, 219.000000000000000),  (292.444444444444460, 219.000000000000000),
  VALID   (259.269841269841270, 172.571428571428560),  (246.000000000000000, 154.000000000000000),  (234.000000000000000, 128.000000000000000),
  VALID   (203.200000000000020, 151.199999999999990),  (203.200000000000020, 151.199999999999990),  (203.200000000000020, 151.199999999999990),
  VALID   (203.200000000000020, 151.199999999999990),  (157.000000000000000, 186.000000000000000),  (201.699999999999990, 228.000000000000000),
   (242.413529411764670, 249.670588235294080)
Red NURBS -- Nonuniform, degree: 3,  Ring-mode: ON;
  Control points:  8;
  P00(227.00, 276.00),  P01(383.00, 275.00),  P02(416.00, 187.00),  P03(313.00, 102.00),  P04(226.00, 174.00),  P05(227.00, 276.00),
  P06(383.00, 275.00),  P07(416.00, 187.00)
  Knots vector:  12;
  {    0.00,    5.00,    9.00,   16.00,   18.00,   25.00,   31.00,   35.00,   42.00,   44.00,   51.00,   57.00 }
  Control points of poly-Bezier:  16;
  VALID   (388.895833333333310, 245.089743589743590),  (397.437500000000000, 236.500000000000000),  (401.562500000000000, 225.500000000000000),
  VALID   (401.718981481481480, 214.425925925925920),  (402.266666666666710, 175.666666666666660),  (354.199999999999990, 136.000000000000000),
  VALID   (312.725791855203620, 133.656108597285050),  (277.176470588235300, 131.647058823529390),  (246.470588235294090, 157.058823529411770),
  VALID   (234.399999999999980, 188.823529411764700),  (226.352941176470610, 210.000000000000000),  (226.588235294117620, 234.000000000000000),
  VALID   (244.192513368983950, 249.160839160839150),  (275.000000000000000, 275.692307692307680),  (359.000000000000000, 275.153846153846130),
   (388.895833333333310, 245.089743589743590)
The intersection point(s) of above two NURBS:  6;
  X00(391.741065814759050, 241.945760041614790),  X01(250.238446689743630, 253.611509308257470),  X02(291.456015179508770, 266.961110455702620),
  X03(337.581736798964930, 266.661100999969340),  X04(376.502361440088410, 163.615362333590720),  X05(251.275042101980320, 160.955053595450490),
  The t value(s) of X point(s) of Blue NURBS:  6;
  t00 =   8.588428315062398,  t01 =   4.193433226472892,  t02 =   5.261353630637577,
  t03 =   6.600804048739494,  t04 =  18.458665946356437,  t05 =  25.401214603116742,
  The t value(s) of X point(s) of Red NURBS:  6;
  t00 =  16.236465420239810,  t01 =  35.416782725333483,  t02 =  37.448628671577254,
  t03 =  39.353349148524508,  t04 =  21.254748614190085,  t05 =  29.078720860262891,

Enjoy your surfing,

Hunt Chang