Если я рисую Arrow3, то это не выглядит 3D-ish, потому что линия не затенена как цилиндр. Как мне это изменить? Наверное, рисовать цилиндр и наконечник стрелы вручную вместе? Как?
Вот MWE, на котором показана стрелка, у которой еще нет цилиндрической части:
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));
решение1
Просто добавьте currentlight
параметр в функцию рисования в качестве быстрого исправления. Для более полного объяснения опций затенения и материалов, предоставляемых Asymptote, см. следующие вопросы:
Что делает «эмиссионный» в Асимптоте?
Асимптота: когда белое не белое
Вот полный код:
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);