2015-11-03 3 views
0

Я пытаюсь произвести объект (по крайней мере, спирали и точку) очень похожи на эту:рисование 3D-спирали и сфер в Gnuplot

enter image description here

Формулу для рисования спирали это :

enter image description here

Теперь предположим, что я взять = 1 и R = 1.

Я попытался с помощью Gnuplot, как это:

splot [t=-20:20] cos(t), sin(t), t 

Это хороший старт, мне нужно найти правильные настройки a и R или изменить отображаемую ось.

enter image description here

Как добавить небольшие сферы по заданным координатам на тот же участок? Скажи:

(0,1,1) -> size 0.2 
(1,1,2) -> size 0.1 
+0

Просто замечание: Если ваша основная цель заключается в "рисунок" а не «заговор», вы можете взглянуть на LaTex и его двигатель PGF/tikz. (см. некоторые [математические примеры] (http://www.texample.net/tikz/examples/feature/matimate-engine/)). С помощью tikz вы можете создавать некоторые высококачественные иллюстрации, такие как тот, который вы включили в свой пост. –

+0

Правда, как я понимаю, вы также можете использовать gnuplot в латексе. – dorien

+1

Правильно! Вы можете использовать gnuplot непосредственно из латекса (пакет gnuplottex). Но gnuplot в первую очередь предназначен для построения данных. Если вы хотите нарисовать что-то, tikz - это иногда лучший выбор. Не поймите меня неправильно! gnuplot - мой любимый инструмент построения графиков. Все, что я хочу сказать, это то, что в зависимости от вашей цели есть разные инструменты ... –

ответ

2

на основе комбинации связанных сайтов, вы можете наложить individual symbols на свой сюжет, рисовать arrows for the lines and place labels.

  1. Для обозначения символов задайте стили линий, используя, например,

    set style line 1 lc rgb 'blue' pt 7 
    

    , чтобы дать вам синий круг. Different symbol sizes can be set with the ps command.

  2. С вызовом splot, вы можете сказать, GNUPLOT использовать стандартный ввод ('-'). Это должен быть повторен для каждого символа:

    '-' w p ls 1 
    

    даст вам одну точку с символом определенной ls 1. Используйте разные определения ls для разных символов.

  3. после команды splot, вам нужно определить координаты для каждого из символов, а затем e, чтобы закончить ввод.
    В этом примере мы имеем две точки, одна на 1. 0. 0. и один на -1. 0. 9.42

  4. Использование set arrow и set label иметь соединительную линию и метку.

Вы можете объединить все, что в сценарии:

set parametric 
unset key 

set style line 1 lc rgb 'blue' pt 7 
set style line 2 lc rgb 'red' pt 7 
set style line 3 lc rgb 'green' pt 7 

splot [t=0:3*pi] cos(t),sin(t),t, '-' w p ls 1, '-' w p ls 2 
1. 0. 0. 
e 
-1. 0. 9.42 
e 

p1 = 3.*pi 
set arrow from 1,0,0 to -1,0,p1 nohead ls 3 
set label 'A' at -1.1,-0.1,9.52 

Этот пример приведет к:

example

+0

Отличный ответ! Одно небольшое замечание. Как сделать одну из точек крупнее? – dorien

+1

Проверьте [мой ответ на этот вопрос] (http://stackoverflow.com/a/16697571/2043505) – Schorsch

Смежные вопросы