Найти - Пользователи
Полная версия: Вопрос по графике
Начало » Python для экспертов » Вопрос по графике
1 2 3 4 5
Lumer
Я что то не на шел такого коталога NeHe.
Ferroman
Первый линк гугла по запросу “NeHe”
Lumer
В общем я как мне и посоветовали раздобыл книгу по OpenGL и в первом же уроке по написанию приложения которое должно формировать на экране монитора узор Серпинского

Вот код

from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import*
def main():
glutInit();
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWinndowPosition(0, 0);
glutDisplayFunc(display);
myinit();
glutMainLoop();
sleep();

def myinit():
glClearColor (1.0, 1.0, 1.0, 0.0);
glColor3f (1.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
gluLoadIdentity();
gluOrtho2D (0.0, 500.0, 0.0, 500.0);
glMatrixMode(GL_MODELVIEW);


def display():
typedef GLfloat point2;
point2 vertises = {{0.0,0.0},{250.0,500.0},{500.0,0.0}};
int i, j, k;
int rand();
point2 p = {75.0, 50.0};
glClear(GL_COLOR_BUFFER_BIT);
for (k=0; k<5000; k++)
j = rand()%3;
p = (p+vertices)/2.0;
p = (p+verticea)/2.0;
glBegin(GL_POINTS);
glVertex2fv(p);
glEnd();
glFlush();



Но на экране ничего не происходит подскажите в чем дело где ошибка?
Striver
Э-э-э-э …

Это на питоне программа или на С?
igor.kaist
Это на питоне… Но не нужно быть знатаком opengl чтоб понять почему не работает.. Скорее всего код недокопипастен :)
3 функции, но они не вызываются.. как это может работать?!
Lumer
Все чтото я вобще запутолся! подскажите как открыть пустое окно OpenGL а то я что то не разберу ни как в книге написано очень просто а у меня что то не получаеться! дайте кто ни буть простой пример!
Ferroman
Lumer
Может стоит отложить эту книгу, скачать примеры с http://pyopengl.sourceforge.net/ и попробовать в них разобраться? Они там вполне хорошие.
Пример есть тут - http://purepython.narod.ru/openglstart.html
Я проверил, он рабочий.
Lumer
Блин одни советуют читать книги другие нет какбы в книге все подробно и просто изложено но у меня не получаеться простого открыть пустое окно Windows в уроках NEHE вовще там все на язык С++ и много мне не нужного для начала вот строки из книги как бы тут всё предельно ясно но отчего же окно не открываеться?




Перед тем как окно приложения будет открыто на экране, должен состояться сеанс связи
между подсистемой окон и OpenGL. В составе библиотеки GLUT эта операция возлагается на
функцию glutlnit():
void glutlnit(int *argcp, char **argv);
Функция имеет два аргумента, через которые можно передать аргументы командной стро-
ки, как в стандартной С-функции main(). После выполнения glutlnit() можно открыть окно
OpenGL-программы, вызвав функцию glutCreateWindow():
int glutCreateWindow(char *title);
Аргумент title этой функции — надпись, которая будет выведена в строке заголовка окна.
При создании окна устанавливаются его параметры, назначенные графической системой
по умолчанию, — размер, положение на экране и режим RGB управления цветом. Для на-
стройки иных значений параметров нужно перед вызовом glutCreateWindow() обратиться к
соответствующим функциям их установки. Например, в следующем фрагменте программы
устанавливается размер окна 480x640 пикселей, а само окно размещается в левом верхнем
углу экрана".
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
glutInitWindowSizeD80, 640);
glutlnitWindowPosition@,0);
Обратите внимание на то, что константы задания отдельных режимов объединяются в ар-
гументе функции glutInitDisplayMode() операцией побитового ИЛИ. Константа GLUT_RGB
задает RGB-режим. Если предполагается использовать режим индексированных цветов, то
вместо константы GLUT_RGB следует передать GLUT_INDEX. Вторая константа GLUT_DEPTH зада-
ет использование буфера глубины при выполнении удаления невидимых поверхностей. Тре-
тья константа GLUT_DOUBLE задает двойную буферизацию (одиночная буферизация задается
константой GLUT_SINGLE).
Режим, заданный по умолчанию, который вполне достаточен для той задачи, которую мы
будем решать в этой главе, — цвет RGB, отсутствие удаления невидимых поверхностей и
одиночная буферизация. Эти настройки можно и не устанавливать в явном виде, но включе-
ние их в программу делает ее текст более понятным для тех, кто только осваивает методику
программирования на OpenGL.
Ferroman
1. Знаки препинания.
2. Чем не подошёл мой пример?
3. Конкретнее вопрос. Как пишите, чего ждёте, что получаете?
Lumer
вобщем задам вопрос так Хватит ли одной функции чтобы открыть пустое окно?

получаеться так по книге что достаточно одной функции

def glutInit():
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
glutInitWindowSize(800, 640);
glutlnitWindowPosition(0,0);
glutCreateWindow():

вот так оно примерно выглядит но не кокого окна не открываеться в чем дело?


А пример этот я уже видел и вроде все понятно но когда пытаюсь открыть просто окно нечего не получаеться.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB