🔗Asymptote Gallery Tagged by “Sphere” #165
đź”—animations-fig007
Show animations/fig0080.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Animation
Tags : #Graph (3D) | #Function (graphing) | #Animation | #Sphere | #Surface | #Path3 | #Segment
size(16cm); import graph3; import animation; import solids; settings.render=0; animation A; int nbpts=500; real q=2/5; real pas=5*2*pi/nbpts; int angle=3; real R=3; real x(real t){return R*cos(q*t)*cos(t);} real y(real t){return R*cos(q*t)*sin(t);} real z(real t){return R*sin(q*t);} triple[] P; real t=-pi; for (int i=0; i<nbpts; ++i) { t+=pas; P.push((x(t),y(t),z(t))); } currentprojection=orthographic((0,5,2)); currentlight=(3,3,5); pen p=rgb(0.1,0.1,0.58); transform3 t=rotate(angle,(0,0,0),(1,0.25,0.25)); filldraw(box((-R-0.5,-R-0.5),(R+0.5,R+0.5)), p, 3mm+black+miterjoin); revolution r=sphere(O,R); draw(surface(r),p); for (int phi=0; phi<360; phi+=angle) { bool[] back,front; save(); for (int i=0; i<nbpts; ++i) { P[i]=t*P[i]; bool test=dot(P[i],currentprojection.camera) > 0; front.push(test); } draw(segment(P,front,operator ..),linewidth(1mm)); draw(segment(P,!front,operator ..),grey); A.add(); restore(); } A.movie();
đź”—animations-fig008
Show animations/fig0090.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Animation
Tags : #Graph (3D) | #Function (graphing) | #Animation | #Sphere | #Surface | #Path3 | #Segment | #Projection (3D) | #Plane
size(16cm); import graph3; import animation; import solids; currentlight.background=black; settings.render=0; animation A; A.global=false; int nbpts=500; real q=2/5; real pas=5*2*pi/nbpts; int angle=4; real R=0.5; pen p=rgb(0.1,0.1,0.58); triple center=(1,1,1); transform3 T=rotate(angle,center,center+X+0.25*Y+0.3*Z); real x(real t){return center.x+R*cos(q*t)*cos(t);} real y(real t){return center.y+R*cos(q*t)*sin(t);} real z(real t){return center.z+R*sin(q*t);} currentprojection=orthographic(1,1,1); currentlight=(0,center.y-0.5,2*(center.z+R)); triple U=(center.x+1.1*R,0,0), V=(0,center.y+1.1*R,0); path3 xy=plane(U,V,(0,0,0)); path3 xz=rotate(90,X)*xy; path3 yz=rotate(-90,Y)*xy; triple[] P; path3 curve; real t=-pi; for (int i=0; i < nbpts; ++i) { t+=pas; triple M=(x(t),y(t),z(t)); P.push(M); curve = curve..M; } curve=curve..cycle; draw(surface(xy), grey); draw(surface(xz), grey); draw(surface(yz), grey); triple xyc=(center.x,center.y,0); path3 cle=shift(xyc)*scale3(R)*unitcircle3; surface scle=surface(cle); draw(scle, black); draw(rotate(90,X)*scle, black); draw(rotate(-90,Y)*scle, black); draw(surface(sphere(center,R)), p); triple vcam=1e5*currentprojection.camera-center; for (int phi=0; phi<360; phi+=angle) { bool[] back,front; save(); for (int i=0; i<nbpts; ++i) { P[i]=T*P[i]; bool test=dot(P[i]-center,vcam) > 0; front.push(test); } curve=T*curve; draw(segment(P,front,operator ..), paleyellow); draw(segment(P,!front,operator ..),0.5*(paleyellow+p)); draw((planeproject(xy)*curve)^^ (planeproject(xz)*curve)^^ (planeproject(yz)*curve), paleyellow); A.add(); restore(); } A.movie();
đź”—solids-fig001

Show solids/fig0010.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 3D | Solids.asy
Tags : #Solid | #Light (3D) | #Draw (3D) | #Surface | #Sphere | #Revolution | #Projection (3D)
import solids; import three; currentprojection=orthographic(1,2,2); size(6cm,0); material m = material( diffusepen=yellow, emissivepen=black, specularpen=orange, shininess=0.25, metallic=0.5, fresnel0=0.07 ); draw(surface(sphere(1)), m);
đź”—solids-fig002

Show solids/fig0020.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 3D | Solids.asy
Tags : #Solid | #Light (3D) | #Draw (3D) | #Surface | #Sphere | #Revolution | #Projection (3D)
import solids; currentlight=light(paleyellow, specularfactor=3, (2,4,6)); size(6cm,0); draw(sphere(1,n=4*nslice), linewidth(bp), m=10); draw(surface(sphere(1,n=4*nslice)), orange);
đź”—solids-fig003

Show solids/fig0030.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 3D | Solids.asy
Tags : #Solid | #Revolution | #Projection (3D) | #Draw (3D) | #Surface | #Sphere | #Wire frame | #Line type
// Author: John Bowman. size(6cm, 0); import solids; currentprojection=orthographic(0, 10, 5); nslice=4*nslice; revolution r=sphere(O, 1); draw(surface(r), lightgrey+opacity(0.75)); skeleton s; r.transverse(s, reltime(r.g, 0.6), currentprojection); r.transverse(s, reltime(r.g, 0.5), currentprojection); draw(s.transverse.back, linetype("8 8", 8)); draw(s.transverse.front); r.longitudinal(s, currentprojection); draw(s.longitudinal.front); draw(s.longitudinal.back, linetype("8 8", 8));
đź”—solids-fig004

Show solids/fig0040.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 3D | Solids.asy
Tags : #Solid | #Transform (3D) | #Revolution | #Surface | #Sphere | #Projection (3D)
import solids; size(6cm,0); currentprojection=orthographic(100,150,30); real r=1; skeleton s; revolution sph=sphere(O,r); draw(surface(sph), palegray); path3 cle=rotate(90,X)*scale3(r)*unitcircle3; triple cam=unit(currentprojection.camera); real a=degrees(xypart(cam),false)-90; real b=-sgn(cam.z)*aCos(sqrt(cam.x^2+cam.y^2)/abs(cam)); cle=rotate(b,cross(Z,cam))*rotate(a,Z)*cle; draw(cle,4pt+red);
đź”—solids-fig005

Show solids/fig0050.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 3D | Solids.asy
Tags : #Projection (3D) | #Solid | #Transform (3D) | #Revolution | #Surface | #Sphere | #Light (3D)
import solids; size(6cm,0); currentlight=light(diffuse=yellow, specular=blue, specularfactor=5, (5,-5,10)); // currentprojection=orthographic(100,100,30); real r=2; skeleton s; revolution sph=sphere(O,r); draw(surface(sph),red); triple cam=unit(currentprojection.camera); revolution cle=revolution(O,r*(rotate(90,Z)*cam),cam); draw(cle, 8pt+black);
đź”—solids-fig006

Show solids/fig0060.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 3D | Solids.asy
Tags : #Solid | #Transform (3D) | #Sphere | #Projection (3D) | #
// Author: John Bowman import three; size(6cm,0); currentprojection=perspective(10,100,50); real a=2.5; draw(scale3(a)*unitsphere,lightyellow); draw(align(unit(currentprojection.vector()))*scale3(a)*unitcircle3,2bp+red);
đź”—solids-fig007

Show solids/fig0070.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 3D | Solids.asy
Tags : #Solid | #Surface | #Sphere | #Draw (3D)
import solids; size(6cm,0); currentprojection=orthographic(1,2,2); surface s=surface(sphere(1,n=10)); material m = material( diffusepen = 0.8*red, emissivepen= yellow, specularpen= red ); material[] p={m, red, 0.8*(red+blue) , green, 0.8*blue}; p.cyclic=true; draw(s,p);
đź”—solids-fig009

Show solids/fig0090.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 3D | Solids.asy
Tags : #Solid | #Arc (3D) | #Markers | #Revolution | #Surface | #Sphere
size(8cm, 0); import solids; import graph3; //Draw 3D right angle (MA, MB) void drawrightangle(picture pic=currentpicture, triple M, triple A, triple B, real radius=0, pen p=currentpen, pen fillpen=nullpen, projection P=currentprojection) { p=linejoin(0)+linecap(0)+p; if (radius==0) radius=arrowfactor*sqrt(2); transform3 T=shift(-M); triple OA=radius/sqrt(2)*unit(T*A), OB=radius/sqrt(2)*unit(T*B), OC=OA+OB; path3 tp=OA--OC--OB; picture tpic; draw(tpic, tp, p=p); if (fillpen!=nullpen) draw(tpic, surface(O--tp--cycle), fillpen); add(pic, tpic, M); } currentprojection=orthographic(10, 15, 3); real r=10, h=6; // r=sphere radius; h=altitude section triple Op=(0, 0, h); limits((0, 0, 0), 1.1*(r, r, r)); axes3("x", "y", "z"); real rs=sqrt(r^2-h^2); // section radius real ch=180*acos(h/r)/pi; path3 arcD=Arc(O, r, 180, 0, ch, 0, Y, 50); revolution sphereD=revolution(O, arcD, Z); draw(surface(sphereD), opacity(0.5)+lightblue); draw(shift(0, 0, h)*scale3(rs)*surface(unitcircle3), opacity(0.5)); path3 arcU=Arc(O, r, ch, 0, 0, 0, Y, 10); revolution sphereU=revolution(O, arcU, Z); draw(surface(sphereU), opacity(0.33)+lightgrey); // right triangle OO'A triple A=rotate(100, Z)*(rs, 0, h); dot("$O$", O, NW); dot("$O'$", Op, W); dot("$A$", A, N); draw(A--O--Op--A); drawrightangle(Op, O, A); if(!is3D()) shipout(format="pdf", bbox(Fill(paleyellow)));
đź”—solids-fig011

Show solids/fig0110.asy on Github.
Generated with Asymptote 3.00-0.
Categories : Examples 3D | Solids.asy
Tags : #Solid | #Revolution | #Wire frame | #Sphere
import solids; unitsize(4cm); currentprojection=orthographic(2,2,1); draw(cylinder(c=(0,0,-1.5),r=1,h=3), m=3); draw(sphere(r=1), m=2, frontpen=defaultbackpen);