Хотя в названии вы упоминаете NURBS, вы, похоже, ищете способ нарисовать серию отрезков Безье-сплайна, которые являются гладкими в точках соединения.
Для этого вам нужно установить точку 1 на втором сегменте, чтобы она отражала точку 2 на 1-м сегменте относительно точки соединения между сегментами (которая является точкой 3 на 1-м сегменте).
В вашем случае точка подключения (3,3) и точка 2 на первом сегменте (2,1), поэтому вам нужно указать точку 1 на втором сегменте (4,5) вместо (4,3) в ваш код.
Измените точку сходства 1 на 3-м сегменте на (7,4), чтобы она соответствовала (5,2) относительно (6,3), и вы получите следующие сегменты, которые могут решить вашу проблему:
BezierSegment Point1="1,2" Point2="2,1" Point3="3,3"
BezierSegment Point1="4,5" Point2="5,2" Point3="6,3"
BezierSegment Point1="7,4" Point2="8,1.75" Point3="9,2.5"
Теперь, если вам не нравится, когда я меняю ваши контрольные точки и действительно хотите, чтобы (4,3) и (7,2) были контрольными точками, добавьте больше сегментов. Просто помните, что вам не нужно решать, что такое point1, если вы хотите плавного соединения с предыдущим сегментом.
Примечания:
это решение даст вам 1-ую степень гладкости в точках соединения. Если вам нужна также вторая степень гладкости (C2), вы можете добиться этого, настроив point2 подходящим образом. Если вы возьмете точку 1 предыдущего сегмента и отразите ее относительно точки 2 предыдущего сегмента, а затем отразите результат относительно точки 1 текущего сегмента, вы получите желаемую точку 2 текущего сегмента. Затем вы просто выбираете любую точку3, которую пожелаете, и все готово. Подробнее см. http://ibiblio.org/e-notes/Splines/B-spline.htm.
Пример, который вы дали из Википедии, - это NURBS. NURBS похож на безлиний сплайн, но он добавляет вес к точкам. Из того, что я могу сказать из документации, BezierSegment не поддерживает это.