1

If I draw a Arrow3, it does not really look 3D-ish because the line is not shaded like a cylinder. How do I change this? Probably drawing the cylinder and arrow head manually together? How?

Here is a MWE that shows the arrow that does not yet have a cylinder part:

size(700);
import solids;
import texcolors;
import three;

currentprojection=orthographic (
    camera=(8,4,4),
    up=(0,0,1),
    target=(2,2,2),
    zoom=0.8
);

// save predefined 2D orientation vectors
pair NN=N;
pair SS=S;
pair EE=E;
pair WW=W;

draw((1.3094,0,2.26599)--(3.3094,0,4.26599),(7bp)+green,Arrow3(size=30bp));

enter image description here

1

Just add the currentlight parameter to the draw function as a quick fix. For a more complete explanation of the shading and material options Asymptote provides, see the following questions:

What does “emissive” in Asymptote do?

Asymptote: when white isn't white

Here is the complete code:

size(700);
import solids;
import texcolors;
import three;

currentprojection=orthographic (
    camera=(8,4,4),
    up=(0,0,1),
    target=(2,2,2),
    zoom=0.8
);

// save predefined 2D orientation vectors
pair NN=N;
pair SS=S;
pair EE=E;
pair WW=W;

draw((1.3094,0,2.26599)--(3.3094,0,4.26599),(7bp)+green,Arrow3(size=30bp),currentlight);
  • If I have a material, let's say: material baseM = material(gray(0.5), black, gray(0.6), black);. How do I apply it to the arrow and keep the thickness (7bp)? I only managed to get one of these two options working. – NOhs Jul 31 '15 at 11:59
  • @MrZ: You can't directly apply a material to a path3. To specify a full-blown material (as opposed to just a color and lighting), you need to get the actual surface (the arrowhead and the tube). I recommend you try to find a satisfactory color/lighting combination before resorting to this. – Charles Staats Jul 31 '15 at 17:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.