![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 08.06.2009
Сообщений: 6
|
![]()
Всем доброго времени!
Помогите, пожалуйста, разобраться с кодом программы на С! Собственно, что она делает и получает в итоге, ибо непонятно и нужно перевести в код на delphi! #include "glos.h" #include <stdio.h> #include <process.h> #include <math.h> #include <GL\\gl.h> #include <GL\\glu.h> #include <GL\\glaux.h> //glaux.lib, opengl32.lib, glu32.lib // FILE *stream; #define kol 15 void myinit(void); void init_surface(void); void CALLBACK display(void); void CALLBACK myReshape(GLsizei w, GLsizei h); GLfloat ctlpoints[4][4][3]; GLUnurbsObj *theNurb; /* * Initializes the control points of the surface to a small hill. * The control points range from -3 to +3 in x, y, and z */ void init_surface(void) { int u, v; for (u = 0; u < 4; u++) { for (v = 0; v < 4; v++) { ctlpoints[u][v][0] = 2.0*((GLfloat)u - 1.5); ctlpoints[u][v][1] = 2.0*((GLfloat)v - 1.5); if ( (u == 1 || u == 2) && (v == 1 || v == 2)) ctlpoints[u][v][2] = 3.0; else ctlpoints[u][v][2] = -3.0; } } } /* Initialize material property and depth buffer. */ void myinit(void) { GLfloat mat_diffuse[] = { 0.7, 0.7, 0.7, 1.0 }; GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 }; GLfloat mat_shininess[] = { 100.0 }; glClearColor (0.0, 0.0, 0.0, 1.0); glMaterialfv(GL_FRONT, GL_AMBIENT, mat_diffuse); glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glDepthFunc(GL_LESS); glEnable(GL_DEPTH_TEST); glEnable(GL_AUTO_NORMAL); glEnable(GL_NORMALIZE); init_surface(); theNurb = gluNewNurbsRenderer(); gluNurbsProperty(theNurb, GLU_SAMPLING_TOLERANCE, 25.0); gluNurbsProperty(theNurb, GLU_DISPLAY_MODE, GLU_OUTLINE_POLYGON); // gluNurbsProperty(theNurb, GLU_DISPLAY_MODE, GLU_FILL); } void CALLBACK display(void) { int D = 0, i = 0, k, M = 0, mi, ma = 0, x, y; //double D = 0.; double s; int Res[kol] = {15, 32, 31,31, 16, 31, 16, 15, 32,15, 16, 31, 16, 31, 16}; { GLfloat knots[8] = {0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0}; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); glRotatef(330.0, 1,0.,0.); glScalef (0.5, 0.5, 0.5); gluBeginSurface(theNurb); gluNurbsSurface(theNurb, 8, knots, 8, knots, 4 * 3, 3, &ctlpoints[0][0][0], 4, 4, GL_MAP2_VERTEX_3); gluEndSurface(theNurb); glPopMatrix(); glFlush(); } } void CALLBACK myReshape(GLsizei w, GLsizei h) { if (!h) return; glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective (45.0, (GLdouble)w/(GLdouble)h, 3.0, 8.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef (0.0, 0.0, -5.0); } /* Main Loop */ int main(int argc, char** argv) { auxInitDisplayMode (AUX_SINGLE | AUX_RGB); auxInitPosition (0, 0, 500, 500); auxInitWindow ("NURBS Surface"); myinit(); auxReshapeFunc (myReshape); auxMainLoop(display); return(0); } |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,869
|
![]()
Я пять лет СИ изучал в СГУ, всякое доводилось видеть, но такого еще не видел!!! похоже на рассчёты какой-то кривой с параметрами. Не дай бог трёхмерная кривулька...
На Дельфи перевёл бы. если б хоть какую-то чать понял. Это тебе препод дал? Он тогда просто маньяк!!!! Надо ж так студентов пугать... P.S. По-моему от тебя на факультете хотят избавиться...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 08.06.2009
Сообщений: 6
|
![]()
да, это препод(( по этой проге надо писать курсовую по измерению ее производительности, понять бы еще что там..
|
![]() |
![]() |
![]() |
#4 |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
![]()
Эээ... А библиотечки графические(которые вверху подключаются) он вам дал, чтоб вы могли хоть эту прогу скомпилировать?
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
|
![]() |
![]() |
![]() |
#5 |
Заблокирован
Старожил
Регистрация: 20.07.2008
Сообщений: 4,032
|
![]()
Изучай OpenGl!
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 08.06.2009
Сообщений: 6
|
![]()
При запуске появляется ошибка
1>LINK : error LNK2001: неразрешенный внешний символ "_mainCRTStartup" fatal error LNK1120: 1 неразрешенных внешних элементов Что с этим делать?? Помогите!!!! |
![]() |
![]() |
![]() |
#7 |
Регистрация: 08.06.2009
Сообщений: 6
|
![]()
библиотек не дал, я их скачала, но запустить пока не удается.
OpenGl учу, но прога на С и непонятна |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 05.05.2011
Сообщений: 35
|
![]()
эта прога совершенно точно строит NURBS. вот полезная сцылка:
http://www.open-gl.com/index.php?opt...=40&Itemid=398 |
![]() |
![]() |
![]() |
#9 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
![]()
baltushka, советую не парится и скачать набор компонент для работы с OpenGL.
95% сбоев и ошибок приложений, находится в полу метрах от монитора
![]() |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Ага. Парился baltushka 2 года, но вот наконец решение найдено и он таки сдаст свою курсовую )
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Интерфейс для программы написанной в MS-DOS | Скарам | Общие вопросы C/C++ | 6 | 15.05.2009 20:37 |
Создание инсталлятора для программы, написанной на Delphi7 | Anna_4493155 | Общие вопросы Delphi | 2 | 18.09.2008 09:12 |
нужна помощь - 2 программы в С++ | Nemisoi | Фриланс | 1 | 22.04.2008 23:10 |
Откат написанной программы | фЁдОр | Свободное общение | 13 | 20.12.2007 11:35 |
ДД. Нужен человек для поддержки программы, написанной в Microsoft Office Access 2003 | gsvgsv | Фриланс | 1 | 06.09.2007 11:52 |