Стиль линии с использованием Graphics3D в Mathematica - PullRequest
3 голосов
/ 14 ноября 2011

Рассмотрим следующее:

cAxes = {{{0, 0, 0}, {0, 0, 1}}, {{0, 0, 0}, {0, 1, 0}}, {{0, 0,0}, {1, 0, 0}}};

Graphics3D[{Line /@ cAxes}, Boxed -> False]

enter image description here

Как по-разному стилизовать 3 линии?

Ответы [ 5 ]

6 голосов
/ 14 ноября 2011

Ответ выше хорош, но я хочу показать некоторые альтернативы.

Я показываю, что для этого можно использовать Style и что Tube является интересной альтернативой Line.

cAxes = {{{0, 0, 0}, {0, 0, 1}}, {{0, 0, 0}, {0, 1, 0}}, {{0, 0, 
     0}, {1, 0, 0}}};

tubes = Tube@# ~Style~ #2 & ~MapThread~ {cAxes, {Red, Green, Blue}};

Graphics3D[tubes, Boxed -> False]

enter image description here

4 голосов
/ 14 ноября 2011

Вы также можете использовать MapThread:

cAxes = {{{0, 0, 0}, {0, 0, 1}}, {{0, 0, 0}, {0, 1, 0}}, {{0, 0, 0}, {1, 0, 0}}};

Graphics3D[{
   MapThread[{#1, Line[#2]} &, {{Red, Blue, Green}, cAxes}]
   }, Boxed -> False]
4 голосов
/ 14 ноября 2011

Вот пример:

colors = {Red, Green, Blue};
style = {Dashed, DotDashed, Dotted};
cAxes = {{{0, 0, 0}, {0, 0, 1}}, {{0, 0, 0}, {0, 1, 0}}, {{0, 0, 
     0}, {1, 0, 0}}};
Graphics3D[{#1, #2, Line@#3} & @@@ Transpose@{colors, style, cAxes}, 
 Boxed -> False]

enter image description here

4 голосов
/ 14 ноября 2011

Также помните, что вы можете сделать то же самое с Plot3D, если вам это нужно:

colors = {Red, Green, Blue};
style = {Dashed, DotDashed, Dotted};
Plot3D[{}, {x, 0, 10}, {y, 0, 10}, 
 AxesLabel -> {x, y, z}, 
 AxesStyle -> Directive /@ Transpose@{colors, style}, 
 Boxed     -> False]
3 голосов
/ 14 ноября 2011

Не проверено (сейчас у меня нет доступа к Mathematica):

Graphics3D[Transpose@{{Red, Green, Blue}, Line /@ cAxes}, Boxed -> False]
...