Рассмотрим создание двухмерного графика.
Пусть у нас текстовый файл из трех колонок чисел output.dat. В первой и второй колонках - аргументы функции, в третей - ее значение. Визуализируем эти данные. Есть тонкость - колонки "разделены" пустыми строками на блоки, в которых один из аргументов должен иметь постоянное значение. Рассматриваем случай, когда аргументы есть равномерная сетка точек на поверхности.
Заходим из командной оболочки в каталог с этим файлом. Привожу минимальный список команд - пополнять и редактировать можно на любой вкус:
#gnuplot
gnuplot> splot 'output.dat' using 1:2:3 w l
gnuplot> set grid
gnuplot> set contour base
gnuplot> set pm
gnuplot> set cntrparam levels 100
gnuplot> set cntrparam levels discret -100,100,150
gnuplot> set xrange [100: 200]
gnuplot> set yrange [200: 300]
gnuplot> key outside
gnuplot> set key off
Цифры даны для примера.
Вывод можно делать и в файл. Возьмем тип postscript:
gnuplot> set term postscript
gnuplot> set out 'picture.ps'
Вернем вывод на консоль:
gnuplot> set out x11
gnuplot> set term x11
Еще немного полезных команд:
gnuplot> set view map
gnuplot> set surface no
gnuplot> unset surface
Хорошая ссылка по теме на русском языке.
вторник, 15 декабря 2009 г.
пятница, 11 декабря 2009 г.
Использование portdowngrade
Инсталлируем portdowngrade:
#cd /usr/ports/sysutils/portdowngrade
#make DEFAULT_CVS_SERVER=\”:pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs\” install clean
Можно выбрать другой сервер, по желанию.
Используем:
#portdowngrade portname
Заметим, что portdowngrade изменяет только порты, а не само программное обеспечение. Поэтому необходимы следующие шаги:
#portsdb -Uu
#portupgrade -f portname
#cd /usr/ports/sysutils/portdowngrade
#make DEFAULT_CVS_SERVER=\”:pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs\” install clean
Можно выбрать другой сервер, по желанию.
Используем:
#portdowngrade portname
Заметим, что portdowngrade изменяет только порты, а не само программное обеспечение. Поэтому необходимы следующие шаги:
#portsdb -Uu
#portupgrade -f portname
четверг, 3 декабря 2009 г.
Минимальный набор функций OpenGL для освещения сцены
Освещение сцены OpenGL необходимо не только для ее собственно освещения, но без реализации освещения сцена не будет восприниматься как трехмерная. Приведем минимальный набор функций для релизации этой возможности:
1)По умолчанию машина OpenGL находиться в состоянии с выключенным освещением. Включим его:
glEnable(GL_LIGHTING);
2)Но это только "состояние" этой машины. Нужно теперь "включить" источник света. Он может быть не один. На каждый - своя команда:
glEnable(GL_LIGHT0);
3)Кроме просто включить, надо еще установить свойства каждого источника света:
glLightfv(GL_LIGHT0, GL_POSITION, l0_pos);
glLightfv(GL_LIGHT0, GL_DIFFUSE , l0_dif);
Первый параметр указывает источник, второй - свойство, третий - значение свойства. Этих двух параметров достаточно для "минимальной" функциональности.
А вообще параметров целое множество:
а)Параметры GL_SPOT_EXPONENT,GL_SPOT_CUTOFF,GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION и GL_QUADRATIC_ATTENUATION устанавливаются функциями glLightf() и glLighti().
б)Параметры GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR,GL_POSITION, GL_SPOT_CUTOFF, GL_SPOT_DIRECTION, GL_SPOT_EXPONENT,GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION и GL_QUADRATIC_ATTENUATION утанавливаются функциями glLightfv() или glLightiv()
4)Свойства есть не только у света, но и у материала, который освещаеться:
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, par_mat);Первый параметр функции определяет сторону материала, для которой задаются свойства, второй задает свойство, третий - его значение.
1)По умолчанию машина OpenGL находиться в состоянии с выключенным освещением. Включим его:
glEnable(GL_LIGHTING);
2)Но это только "состояние" этой машины. Нужно теперь "включить" источник света. Он может быть не один. На каждый - своя команда:
glEnable(GL_LIGHT0);
3)Кроме просто включить, надо еще установить свойства каждого источника света:
glLightfv(GL_LIGHT0, GL_POSITION, l0_pos);
glLightfv(GL_LIGHT0, GL_DIFFUSE , l0_dif);
Первый параметр указывает источник, второй - свойство, третий - значение свойства. Этих двух параметров достаточно для "минимальной" функциональности.
А вообще параметров целое множество:
а)Параметры GL_SPOT_EXPONENT,GL_SPOT_CUTOFF,GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION и GL_QUADRATIC_ATTENUATION устанавливаются функциями glLightf() и glLighti().
б)Параметры GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR,GL_POSITION, GL_SPOT_CUTOFF, GL_SPOT_DIRECTION, GL_SPOT_EXPONENT,GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION и GL_QUADRATIC_ATTENUATION утанавливаются функциями glLightfv() или glLightiv()
4)Свойства есть не только у света, но и у материала, который освещаеться:
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, par_mat);Первый параметр функции определяет сторону материала, для которой задаются свойства, второй задает свойство, третий - его значение.
Подписаться на:
Сообщения (Atom)