Я ' Я работаю над этой задачей программирования для колледжа, где мы должны написать программу c ++
, которая вычисляет вектор магнитного поля для определенных катушек в трехмерном пространстве.
Мне удалось написать эту программу, и я думаю, она у меня работает очень хорошо.
Я хочу добавить специальный тон (это моя экзаменационная работа, поэтому она должна быть очень хорошей!): Я не хочу вычерчивать векторы.
Я привык звонить gnuplot
из c ++
(через конвейер), и это то, что я обычно делаю:
.dat
.dat
Поскольку мои данные всегда были 2D, x
и y
, я совершенно потеряно здесь. У меня вопрос:
.dat
(например, использовать ли фигурные скобки для группировки компонентов вектора?) Это было бы было бы проще, если бы я мог отформатировать файл .dat
следующим образом:
# Px Py Pz Bx By Bz
1 0 2 0.7 0.5 0.25 #<= example data line
... more data ...
когда вектор магнитного поля в точке P = (1,0,2)
равен вектору B = (0,7,0,5,0,25)
. Это было бы легко запрограммировать, реальный вопрос: подойдет ли это? и как построить график в gnuplot. (вау, я думаю, что я задавал один и тот же вопрос 3 раза.)
Хорошо, раз уж кто-то попросил меня описать, как я трубку (не знаю) если это правильный термин, подумайте), в gnuplot
. Вот он:
Сначала откройте канал и назовите его pipe
:
FILE * pipe = popen ("gnuplot -persist 2>
Сообщите gnuplot
, что делать через конвейер:
fprintf (pipe, "установить термин x11 расширенный \ n");
fprintf (pipe, "построить x ^ 2 ti 'x ^ 2' с линиями \ n");
обратите внимание на \ n
, который абсолютно необходим. Это то, что выполняет команду.
закрыть канал:
pclose (pipe);
Необходимая библиотека называется
Я полагаю.