summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/examples/NURBScurve.asy
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/examples/NURBScurve.asy')
-rw-r--r--Build/source/utils/asymptote/examples/NURBScurve.asy33
1 files changed, 33 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/examples/NURBScurve.asy b/Build/source/utils/asymptote/examples/NURBScurve.asy
new file mode 100644
index 00000000000..b3b8c393b9e
--- /dev/null
+++ b/Build/source/utils/asymptote/examples/NURBScurve.asy
@@ -0,0 +1,33 @@
+import three;
+
+size(10cm);
+
+currentprojection=perspective(50,80,50);
+
+// Nonrational curve:
+// udegree=3, nu=6;
+real[] knot={0,0,0,0,0.4,0.6,1,1,1,1};
+
+triple[] P={
+ (-31.2061,12.001,6.45082),
+ (-31.3952,14.7353,6.53707),
+ (-31.5909,21.277,6.70051),
+ (-31.4284,25.4933,6.76745),
+ (-31.5413,30.3485,6.68777),
+ (-31.4896,32.2839,6.58385),
+ };
+
+draw(P,knot,green);
+
+// Rational Bezier curve:
+// udegree=3, nu=4;
+real[] knot={0,0,0,0,1,1,1,1};
+path3 g=scale3(20)*(X{Y}..{-X}Y);
+triple[] P={point(g,0),postcontrol(g,0),precontrol(g,1),point(g,1)};
+
+// Optional weights:
+real[] weights=array(P.length,1.0);
+weights[2]=5;
+
+draw(P,knot,weights,red);
+