-10 / 0 / 0
Регистрация: 14.06.2009
Сообщений: 85
|
|
1 | |
Простейший графисеский редактор29.05.2011, 10:57. Показов 2278. Ответов 6
Метки нет (Все метки)
Реализовать простейший векторный графический редактор со следующим набором функциональных возможностей:
задание цвета фона, на котором происходит рисование. рисование точек различного цвета и размера рисование ломаных линий различного цвета и толщины рисование многоугольников различного цвета размер точек и толщину линий выбирать с помощью меню из набора значений 1,3,5,7,9,11,13,15 цвета фона и рисования выбирать с помощью меню из набора цветов сохранение полученного изображения в файле формата SVG создание нового рисунка, т.е. удаление всех нарисованных объектов, установка переменных в начальное положение и очистка экрана цветом фона по умолчанию. Не хочет компилироваться с помощью Make Код
#pragma comment(lib, "opengl32.lib") #pragma comment(lib, "glu32.lib") #pragma comment(lib, "glut32.lib") #include "glut.h" #include "stdio.h" #include <windows.h> #include <iostream> #include "stdio.h" float width=640,height=480; void init() { glViewport(0.f,0.f,(GLsizei)width, (GLsizei)height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.f, (GLdouble)width/50, 0.f, (GLdouble)height/50, -1.f, 1.f); } void Display() { glClearColor(0.5,0.5,0.5,0.0); //Цвет, в который очищается окно glClear (GL_COLOR_BUFFER_BIT); //Очищение glColor3f(1.f,0.f,0.f); /*glBegin(GL_POLYGON); //Начало сцены glVertex3f(1.25f, 1.25f, 0.f); glVertex3f(3.75f, 1.25f, 0.f); glVertex3f(3.75f, 3.75f, 0.f); glVertex3f(1.25f, 3.75f, 0.f); glEnd();*/ glColor3f(1.f,1.f,0.f); glPointSize(5.f); glBegin(GL_POINTS); glVertex3f(4.f, 4.25f, 0.f); glVertex3f(-4.f, 4.25f, 0.f); glEnd(); glFlush(); } void MouseEvent(int button, int state, int x, int y) { printf("%d %d\n", x, y); } void MenuEvent(int element) { printf("%d\n", element); } int main(int argc, char** argv) { int MenuMain, MenuColor, MenuType, MenuTypePaint, MenuSize, MenuLineType; MenuType = glutCreateMenu(Menu_Type); //Создание меню Type glutAddMenuEntry("Point", 1); glutAddMenuEntry("Line", 2); glutAddMenuEntry("Strip", 3); glutAddMenuEntry("Polygon", 4); MenuMain = glutCreateMenu(Menu_Main); //Главное меню glutAddSubMenu("Color", MenuColor); glutAddSubMenu("Type", MenuType); glutAddSubMenu("TypePaint", MenuTypePaint); glutAddMenuEntry("Save file as...", 3); glutAddMenuEntry("Settings by defaunt", 4); glutAddMenuEntry("Exit", 5); glutAttachMenu(GLUT_RIGHT_BUTTON); glutMainLoop(); } void Menu_Type(int value) //Меню выбора типа примитивов { } CHOOSECOLOR cc; // common dialog box structure static COLORREF acrCustClr[16]; // array of custom colors HWND hwnd; // owner window HBRUSH hbrush; // brush handle static DWORD rgbCurrent; void Menu_Color(int value) //Меню цвета { ZeroMemory(&cc, sizeof(cc)); cc.lStructSize = sizeof(cc); cc.hwndOwner = hwnd; cc.lpCustColors = (LPDWORD) acrCustClr; cc.rgbResult = rgbCurrent; cc.Flags = CC_FULLOPEN | CC_RGBINIT; if (ChooseColor(&cc)==TRUE) //Откратия "ColorDialog" { hbrush = CreateSolidBrush(cc.rgbResult); rgbCurrent = cc.rgbResult; switch(value) { case(1) : R = (float) GetRValue(rgbCurrent) / 255; //Установка цвета приметивов G = (float) GetGValue(rgbCurrent) / 255; B = (float) GetBValue(rgbCurrent) / 255; break; case(2) : Rbg = (float) GetRValue(rgbCurrent) / 255; //Установка цвета окна Gbg = (float) GetGValue(rgbCurrent) / 255; Bbg = (float) GetBValue(rgbCurrent) / 255; break; }; glutPostRedisplay(); }; }; //void Menu_Color(int value) void FuncSave() //Функция сохранения данных в файл { OPENFILENAME ofn; char szFile[260]; HWND hwnd; HANDLE hf; ZeroMemory(&ofn, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hwnd; ofn.lpstrFile = szFile; ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0"; ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; if (GetSaveFileName(&ofn) == TRUE) { FILE *out; out = fopen(szFile, "w"); ... }; glutPostRedisplay(); }; //void FuncSave() int main(int argc, char* argv[]) { //Инициализация glut glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(width, height); glutInitWindowPosition(100, 100); glutCreateWindow("qwe"); init(); glutMouseFunc(MouseEvent); glutDisplayFunc(Display); int submenu = glutCreateMenu(MenuEvent); glutAddMenuEntry("11", 11); glutAddMenuEntry("22", 22); int g = glutCreateMenu(MenuEvent); glutAddMenuEntry("1", 1); glutAddMenuEntry("2", 2); glutAddSubMenu("3", submenu); glutAttachMenu(GLUT_RIGHT_BUTTON); glutMainLoop(); return 0; }
0
|
29.05.2011, 10:57 | |
Ответы с готовыми решениями:
6
Простейший текстовый редактор в консоли Простейший текстовый редактор стандартными средствами c++ Простейший графический редактор Простейший текстовый редактор на VC++ |
13 / 13 / 4
Регистрация: 24.02.2011
Сообщений: 64
|
|
29.05.2011, 13:10 | 2 |
что хоть пишет?
Добавлено через 4 минуты Какой смысл плодить темы. Как я понимаю эта тоже вашаПостроения на плоскости
0
|
-10 / 0 / 0
Регистрация: 14.06.2009
Сообщений: 85
|
|
29.05.2011, 13:21 [ТС] | 3 |
Ругается сборщик Make
0
|
13 / 13 / 4
Регистрация: 24.02.2011
Сообщений: 64
|
|
29.05.2011, 13:34 | 4 |
Воспользуйтесь переводчиком. И все поймете. Если нет, то сначало рид пару книжек по opengl и с++
0
|
-10 / 0 / 0
Регистрация: 14.06.2009
Сообщений: 85
|
|
30.05.2011, 23:48 [ТС] | 5 |
0
|
29 / 29 / 6
Регистрация: 14.12.2009
Сообщений: 79
|
|
31.05.2011, 00:00 | 6 |
на Qt писал похожее, нужен исходник?
1
|
13 / 13 / 4
Регистрация: 24.02.2011
Сообщений: 64
|
|
31.05.2011, 09:42 | 7 |
Аш 2 функции мэин. Как вам помогать если вы даже ни одной книги не открывали по с++. А за opengl взялись. Думаете осилите? И даже если вам напишут, что это изменит?
1
|
31.05.2011, 09:42 | |
31.05.2011, 09:42 | |
Помогаю со студенческими работами здесь
7
Простейший графический редактор Простейший графический редактор, трансформирования изображения Написать простейший текстовый редактор (есть код на Delphi) Написать Простейший Графический редактор на Visual Studio 2008-2010 C++ Простейший графический редактор Простейший текстовый редактор Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |