diff options
Diffstat (limited to 'Build/source/utils/asymptote/examples/BezierSaddle.asy')
-rw-r--r-- | Build/source/utils/asymptote/examples/BezierSaddle.asy | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/examples/BezierSaddle.asy b/Build/source/utils/asymptote/examples/BezierSaddle.asy new file mode 100644 index 00000000000..f6c1d1895fc --- /dev/null +++ b/Build/source/utils/asymptote/examples/BezierSaddle.asy @@ -0,0 +1,29 @@ +import three; + +size(300); + +patch p=patch(unstraighten(unitplane.s[0].external())); + +p.P[3][0]+=(0,0,1); + +p.P[1][0]+=(0,0,1/3); +p.P[2][0]+=(0,0,2/3); +p.P[3][1]+=(0,0,2/3); +p.P[3][2]+=(0,0,1/3); + +p.P[2][1]=interp(p.P[2][0],p.P[2][3],1/3); +p.P[2][2]=interp(p.P[2][0],p.P[2][3],2/3); + +p.P[1][1]=interp(p.P[1][0],p.P[1][3],1/3); +p.P[1][2]=interp(p.P[1][0],p.P[1][3],2/3); + +draw(surface(p),red+opacity(0.75)); + +void dot(triple[][] P) { + for(int i=0; i < 4; ++i) + for(int j=0; j < 4; ++j) { + draw(string(i)+","+string(j),P[i][j],linewidth(1mm)); + } +} + +dot(surface(p).s[0].P); |