Sla
|
|
« Ответ #30 : 15-05-2009 21:02 » |
|
Ёёёёё так это ж другой вопрос не знаю как там в сях ,будет какая-то смесь writeln ("конус --> 1"); writeln ("цилиндр --> 2"); key = getchar Саse char 1: exec konys 2: exec cilindr долше можно издеваться над keypressed и прочими штуками, типа gotocursor
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
KrL
Участник
Offline
|
|
« Ответ #31 : 15-05-2009 21:06 » |
|
Ну какую-нибудь боле-мене симпотную охота, такую бы я и сам написал) Т.е. или в окне консоли кнопочки(там вроде псевдо они), или вверху окна. Ну где обычно файл, справка итд
|
|
|
Записан
|
|
|
|
Вад
|
|
« Ответ #32 : 15-05-2009 21:12 » |
|
Охота кнопочки и менюшки - так не делай консольное приложение. Тем более, что консольным оно будет чисто формально - отрисовка-то всё равно оконная, выходит. ИМХО, с кнопочками в консоли побольше мороки будет. Впрочем, повторюсь, мне уже не первый раз кажется, что ты как-то превратно понимаешь задание. Если смысл задания был в том, чтобы научиться рисовать графические примитивы, то OpenGL идёт лесом, а консоль превращается в DOS-приложение на каком-нибудь Turbo C++. Ну или ручками порисовать в виндовом окне, но это чистый WinAPI, и OpenGL опять отправляется в сад.
|
|
|
Записан
|
|
|
|
KrL
Участник
Offline
|
|
« Ответ #33 : 16-05-2009 14:56 » |
|
Вад Все равно не может найти(( менюшка: #include "stdio.h" #include "conio.h" #include "objects.h"
void cone(); void sphere();
int _tmain() { int funk, test=1; while(test) { test=0; scanf_s("%d",&funk); switch(funk) { case 1: cone(); case 2: sphere(); default: { test = 1; printf("error"); } } } return 0; } objects.h #if !defined OBLECTS_H #define OBJECTS_H void cone(); void sphere(); #endif
Выдает >menu2.obj : error LNK2019: unresolved external symbol "void __cdecl cone(void)" (?cone@@YAXXZ) referenced in function "int __cdecl _tmain(void)" (?_tmain@@YAHXZ) 1>MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup 1> fatal error LNK1120: 2 unresolved externals еще вопрос, прототипы функций надо еще где-то кроме хидера писать?) пробовал подключать срр, не находит. я так понимаю нужно где-то путь прописывать?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #34 : 16-05-2009 15:05 » |
|
KrL, а тело функции cone то где ?
|
|
|
Записан
|
|
|
|
KrL
Участник
Offline
|
|
« Ответ #35 : 16-05-2009 16:03 » |
|
Ребят ну выше же все писал... только всесто main() cone(). Находится в файле cone.cpp #include <windows.h>
#include <GL/gl.h> #include <GL/glu.h> #include <GL/glaux.h> #include "stdlib.h"
void cone();
double R = 1, H = 2;
void CALLBACK Key_UP(void) { R = R + 0.2; H = H + 0.4; } void CALLBACK Key_DOWN(void) { R = R - 0.2; H = H - 0.4; } void DrawCone() { glPushMatrix(); // сохраняем текущие координаты glTranslated(0.1,0,0); // сдвигаемся в точку (2,0,0) //glRotated(-75, 0.1,0,0); // поворачиваем систему координат glRotated(-75, 0,1,0); // поворачиваем систему координат glRotated(65, -1,0,0); glColor3d(0,1,0); auxWireCone(R, H); // рисуем конус glPopMatrix(); // возвращаемся к старым координатам }
void CALLBACK resize(int width,int height) { glViewport(0,0,width,height); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); glOrtho(-5,5, -5,5, 2,12); gluLookAt( 0,0,5, 0,0,0, 0,1,0 ); glMatrixMode( GL_MODELVIEW ); }
void CALLBACK display(void) { glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); DrawCone(); auxSwapBuffers(); }
void cone() { float pos[4] = {3,3,3,1}; float dir[3] = {-1,-1,-1};
GLfloat mat_specular[] = {1,1,1,1};
auxInitPosition( 50, 10, 400, 400); auxInitDisplayMode( AUX_RGB | AUX_DEPTH | AUX_DOUBLE ); auxInitWindow( "Glaux Template" ); auxIdleFunc(display); auxReshapeFunc(resize);
auxKeyFunc(AUX_UP, Key_UP); auxKeyFunc(AUX_DOWN, Key_DOWN);
glEnable(GL_DEPTH_TEST);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING); glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0, GL_POSITION, pos); glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dir);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); glMaterialf(GL_FRONT, GL_SHININESS, 128.0);
/* * Enter your cod here */ auxMainLoop(display); } Она точно рабочая)
|
|
|
Записан
|
|
|
|
KrL
Участник
Offline
|
|
« Ответ #36 : 19-05-2009 19:52 » |
|
int main() { int a; int funk, test=1; do { printf("Введите циферку))"); test=1; while(test) { test=0; scanf_s("%d",&funk); switch(funk) { case 1: a=1; break; case 2: a=2; break; default: { test = 1; printf("error"); break; } } } } Open (funk); return 0; } error C2061: syntax error : identifier 'Open' Функция определена.. Почему то если закоментить весь цикл то ошибку не выдает.. Как исправить?
|
|
« Последнее редактирование: 19-05-2009 21:44 от KrL »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #37 : 19-05-2009 20:04 » |
|
по моему, тут лишнее " : ) )" в строчке
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #38 : 19-05-2009 20:13 » |
|
полностью согласен с Лёшкой эта конструкция что-то с чем-то!!!
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Sla
|
|
« Ответ #39 : 19-05-2009 20:45 » |
|
KrL, при любо копи-пасте будь внимательным.
зы. Мне тут пришлось чей-то код целых два дня править, вернее форматировать, чтоб понять, что делают., в конце первого дня понял что самостоятельно написал бы быстрее.
ззы зы привел к примеру - делай самостоятельно
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
KrL
Участник
Offline
|
|
« Ответ #40 : 19-05-2009 21:42 » |
|
Блин у меня в коде нет смайла xDD я не знаю откуда он взялся) компилятор бы сразу заругался же Еслиб все было так просто не парился бы второй день) Это пример нашего препода... У него код вечно не работает и не понятно почему xD
|
|
« Последнее редактирование: 19-05-2009 21:45 от KrL »
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #41 : 19-05-2009 21:46 » |
|
Ты уверен, что что функция Open именно так у тебя определена?. В коде у тебя не видно, где вообше она у тебя определена.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
KrL
Участник
Offline
|
|
« Ответ #42 : 19-05-2009 22:46 » |
|
#include <windows.h>
#include <GL/gl.h> #include <GL/glu.h> #include <GL/glaux.h> #include "stdlib.h" #include "stdio.h" #include "conio.h"
double R = 1, H = 2;
void DrawCylinder(); void DrawCone();
void Open (int a);
int main() { int a=0; int funk=0, test=1; do { printf("Введите циферку))"); test=1; while(test) { test=0; scanf_s("%d",&funk); switch(funk) { case 1: a=1; break; case 2: a=2; break; default: { test = 1; printf("error"); break; } } } } Open (funk); return 0; } //много букаф
void Open (int a) { float pos[4] = {3,3,3,1}; float dir[3] = {-1,-1,-1};
GLfloat mat_specular[] = {1,1,1,1};
auxInitPosition( 50, 10, 400, 400); auxInitDisplayMode( AUX_RGB | AUX_DEPTH | AUX_DOUBLE ); auxInitWindow( "Glaux Template" ); printf("%d",a); switch (a) { case 1: auxIdleFunc(display1); break; case 2: auxIdleFunc(display2); break; } auxReshapeFunc(resize);
auxKeyFunc(AUX_UP, Key_UP); auxKeyFunc(AUX_DOWN, Key_DOWN);
glEnable(GL_DEPTH_TEST);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING); glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0, GL_POSITION, pos); glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dir);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); glMaterialf(GL_FRONT, GL_SHININESS, 128.0);
auxMainLoop(display); }
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #43 : 20-05-2009 03:00 » |
|
KrL, а препод у тебя шутник, просто
|
|
|
Записан
|
|
|
|
Вад
|
|
« Ответ #44 : 20-05-2009 06:20 » |
|
KrL, у тебя цикл начинается: do { ... - а while где? Вот компилятор и удивляется, почему там, где должен быть while, стоит Open какое-то
|
|
|
Записан
|
|
|
|
KrL
Участник
Offline
|
|
« Ответ #45 : 20-05-2009 10:51 » |
|
спс)) Шутник еще какой.. сказал курсовые сдавать на их компах, на ноуте нельзя.. Там компы древние, винды засранные ужасно и самое прикольное визуал студио шестые...
|
|
|
Записан
|
|
|
|
KrL
Участник
Offline
|
|
« Ответ #46 : 20-05-2009 12:58 » |
|
Еще вопрос) Сложно сделать чтоб нормально русский отоброжался? ато крякозябры какие-то.. мне надо то 3 строчки написать..
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #47 : 20-05-2009 13:09 » |
|
какая у тебя кодировка в консоли? а какую выводишь?
Поиск наше ФСЁ. Лень - твое ФСЁ
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
KrL
Участник
Offline
|
|
« Ответ #48 : 20-05-2009 13:47 » |
|
Sla, ееее)) В консоли дос.. вывожу вроде юникод а там фиг его знает) оффтоп как лень убить в себе? xD
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #49 : 20-05-2009 14:07 » |
|
как лень убить в себе? Работой. Развей в себе условный рефлекс: как только чувствуется лень - тут же хочется поработать
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
KrL
Участник
Offline
|
|
« Ответ #50 : 20-05-2009 20:14 » |
|
Гы.. он есть ток в обратную сторону...
|
|
|
Записан
|
|
|
|
KrL
Участник
Offline
|
|
« Ответ #51 : 25-05-2009 10:44 » |
|
Вроде закончил. Потестируйте плз) В приложениях экзешник курсача и библиотека для него. Ее в папку систем 32.
З.Ы. Скинул 2-м знакомым у них не запускается. Пишет "Приложение не было запущено,поскольку оно не корректно настроено!Повторная установка приложения может решить данную проблему" У меня все работает...
Как избавиться от этого?
|
|
« Последнее редактирование: 25-05-2009 10:56 от KrL »
|
Записан
|
|
|
|
Anchorite
Гость
|
|
« Ответ #52 : 25-05-2009 19:57 » |
|
Твой "Kypca4 v2.exe" использует отладочные версии DLL из Visual Studio. Не у всех эти DLL есть на машине. Собери Release версию.
|
|
|
Записан
|
|
|
|
KrL
Участник
Offline
|
|
« Ответ #53 : 25-05-2009 20:50 » |
|
спс) Я добавил длл к экзешнику, заработал, только теперь вместо 80 500кб весит(
З.Ы. По ходу ни у кого их нет((
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #54 : 26-05-2009 01:38 » |
|
KrL, тебе же сказали - нужно Release версию сделать )
|
|
|
Записан
|
|
|
|
KrL
Участник
Offline
|
|
« Ответ #55 : 04-06-2009 01:47 » |
|
Я и сделал)
|
|
|
Записан
|
|
|
|
|