diff options
Diffstat (limited to 'Build/source/utils/asymptote/examples/impact.asy')
-rw-r--r-- | Build/source/utils/asymptote/examples/impact.asy | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/examples/impact.asy b/Build/source/utils/asymptote/examples/impact.asy new file mode 100644 index 00000000000..b58d381f26a --- /dev/null +++ b/Build/source/utils/asymptote/examples/impact.asy @@ -0,0 +1,28 @@ +// Contributed by Philippe Ivaldi. + +import graph3 ; +import contour; +size (6cm,0); +currentprojection=orthographic(1,1,1) ; + +real rc=1, hc=2, c=rc/hc; +draw(shift(hc*Z)*scale(rc,rc,-hc)*unitcone,blue); + +triple Os=(0.5,0.5,1); +real r=0.5; +draw(shift(Os)*scale3(r)*unitsphere,red); + +real a=1+1/c^2; +real b=abs(Os)^2-r^2; + +real f(pair z) +{ + real x=z.x, y=z.y; + return a*x^2-2*Os.x*x+a*y^2-2*Os.y*y-2*Os.z*sqrt(x^2+y^2)/c+b; +} + +real g(pair z){return (sqrt(z.x^2+z.y^2))/c;} + +draw(lift(g,contour(f,(-rc,-rc),(rc,rc),new real[]{0})),linewidth(2bp)+yellow); + +axes3("$x$","$y$","$z$",Arrow3); |