24

Here's an alternative using Asymptote. It fulfills some version of most of your requests; for instance, the colors are defined in the preamble (but in Asymptote code rather than TeX code, so you might need to define TeX versions separately). % To run: pdflatex --shell-escape filename.tex \documentclass[margin=10pt,convert]{standalone} \usepackage{...


21

Updated: Includes workarounds for previous difficulties with compiling complex paths. Here's an Asymptote approach that allows nth order helixes. I show examples of a first-order helix (which wraps once around the torus, as in the original question), a second-order helix, and a third-order helix. Here's the code (configured for a first-order helix): ...


19

Here's an approach using asymptote. It's pretty basic, but if you open it in Adobe Reader you can rotate the torus! \documentclass[12pt]{article} \usepackage{asymptote} \begin{document} \begin{center} \begin{asy}[width=0.5\textwidth] import graph3; size(200,0); currentprojection=orthographic(4,0,2); //inner radius real R=2; //outer radius real a=0.75; /...


18

You can use object=fusion to merge all the spheres to a single object. For that you must also set the option solidmemory: \documentclass[11pt]{standalone} \usepackage[utf8]{inputenc} \usepackage{pstricks,pst-solides3d} \begin{document} \begin{pspicture}(-6,-6)(6,6) \psset{viewpoint=100 100 100,Decran=150} \axesIIID[showOrigin=true,mathLabel=false,...


14

The (original) image was created using ePiX (available from CTAN). The source sphere.xp can be compiled using elaps <options> sphere.xp to produce sphere.xp: /* -*-ePiX-*- */ #include "epix.h" using namespace ePiX; const double k(2*M_PI/(360*sqrt(3))); // assume "degrees" mode double exp_cos(double t) { return exp(k*t)*Cos(t); } ...


13

This is an easy way to do it. In 2d and using a 'fake cavalier' perspective as in the OP picture. The shadings are not necessary. I made them trying to control the transparency and the light of both figures. This is my proposal: \documentclass[tikz,border=2mm]{standalone} \def\r{0.3} % aspect between ellipse semi-axes \pgfdeclareradialshading{rblue}{\...


12

Have a look at Asymptote. It's very powerful for 3D graphics and can be embedded into Latex. \documentclass{standalone} \usepackage{asymptote} \begin{document} \begin{asy}[width=10cm,height=10cm] import solids; import labelpath3; // Set page size size(0,150); // Lighting currentlight=Viewport; real wi = 4; real le = 4; material m = material(grey, ...


11

Let's start with the skeleton. Coordinates are copy from polyhedron_js.asy. \documentclass[border=9,tikz]{standalone} \usepackage{tikz-3dplot} \begin{document} \foreach\s in{2,4,...,360}{ \tdplotsetmaincoords{2.71828+\s}{2.71828+\s*2} \tikz[tdplot_main_coords,scale=.1]{ \path(-150cm,-150cm)(150cm,150cm); \draw (20.1774,...


10

Here is an solution for pstricks, but it's not very nice. Thomas \documentclass[11pt]{standalone} \usepackage[utf8]{inputenc} \usepackage{pstricks,pst-solides3d} \begin{document} \begin{pspicture}(-6,-6)(6,6) \psset{viewpoint=100 100 100,Decran=150,solidmemory} \axesIIID[showOrigin=true,mathLabel=false,axisemph=\textbf,labelsep=8pt](-7,-7,-7)(7,7,7) \...


9

NOTE that: I don't know either what I am drawing. :) Drawing 3D image in Asymptote is a difficult problem for both my knowledge and my computer (it is weak). You can add mesh for surface. You can also draw two surface separately (can be done on http://asymptote.ualberta.ca/). You must have a parametrization of your surface to use the command vectorfield. I ...


8

If you're willing to use rasterized images, you might consider an Asymptote solution. The basic idea is to draw two surfaces, the "top" and "bottom" of your region, and then fill in the edges with a tube. Here's the code, with some explanatory comments. (Drawing the top and bottom surfaces correctly does, unfortunately, require a bit of math.) \...


8

You can use 3dtools. With phi=90, you can try \documentclass[border=2mm]{standalone} \usepackage{tikz} \usetikzlibrary{3dtools,calc}% https://github.com/marmotghost/tikz-3dtools \begin{document} \begin{tikzpicture}[3d/install view={phi=90,theta=70},line cap=butt,line join=round,declare function={R=3; },c/.style={circle,fill,inner sep=1pt}] \path ...


7

Your solids S4 and T4 are both set at locations consisting of only 2 dimensions (-3,-0.9)/(3,-0.9) while you need 3 dimensions. I've done so using (-3,0,-0.9)/(3,0,-0.9) in the MWE below: \documentclass[ dvipsnames ]{article} \usepackage[ hmargin=2.4cm, vmargin=3cm ]{geometry}% http://ctan.org/pkg/geometry \usepackage{pst-solides3d}% tug.org/PSTricks/...


7

The procedures Sin and Cos aren't native PostScript operators, but are defined in pst-solides3d.pro as: /Cos {rd cos} def /Sin {rd sin} def with /pi 3.14159 def /rd {180 pi div mul} def The native PostScript operators are sin and cos and take their argument in degrees. If you want to specify an angle in radians which should be used by rotateOpoint3d, ...


7

Minimal Working Solution \documentclass[pstricks,margin=1mm]{standalone} \usepackage{pst-solides3d} \psset{viewpoint=50 70 50 rtp2xyz,Decran=50,linewidth=0.5\pslinewidth} \defFunction[algebraic]{helicespherique}(t) {0.5*cos(10*t)*cos(t)} {0.5*sin(10*t)*cos(t)} {0.5*sin(t)} \begin{document} \begin{pspicture*}(-0.5,-0.5)(0.5,0.5)...


6

After tinkering with the solutions provided here, I decided to give my own, summarized answer. Based on the previous answers, it seems the pst-solides3d package is the best option. (Charles Staats suggests asymptote as another possible method.) As pointed out by Christoph, one can make the spheres intersect through object=fusion (which also requires the ...


6

Perhaps something like this? I'm using TikZ 3d and isometric perspective. There are a couple of simplifications. Some points were found by trial-and-error over the sphere (if you see an angle not multiple of 15, that's one of them), because to accurately find them will be quite heavy on the math department. Then, the back curve of intersection between ...


5

Well, here's a start. Using Jeff Hein's (quite brilliant) tikz-plot3d (suggested by your tag), I have built at least the outer and inner bounds of a racetrack (in magenta). All other elements you wish to include, as well as the viewing angle, may be implemented with this package (I think), and would probably provide a great familiarisation course in the ...


Only top voted, non community-wiki answers of a minimum length are eligible