1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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);
|