Assíntota: Arrow3 só tem ponta de seta 3D

Assíntota: Arrow3 só tem ponta de seta 3D

Se eu desenhar uma Flecha3, ela realmente não parecerá 3D porque a linha não está sombreada como um cilindro. Como posso mudar isso? Provavelmente desenhando o cilindro e a ponta da flecha manualmente? Como?

Aqui está um MWE que mostra a seta que ainda não possui parte cilíndrica:

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));

insira a descrição da imagem aqui

Responder1

Basta adicionar o currentlightparâmetro à função draw como uma solução rápida. Para uma explicação mais completa das opções de sombreamento e materiais que o Asymptote oferece, consulte as seguintes perguntas:

O que “emissivo” em Assíntota faz?

Assíntota: quando o branco não é branco

Aqui está o código completo:

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);

informação relacionada