Форум программистов, компьютерный форум CyberForum.ru

Простейший графисеский редактор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разработайте алгоритм и напишите программу с использованием вложенных операторов цикла for для расчета СУММА(от i=1 до n)СУММА(от j=1 до m)(2*i+j) http://www.cyberforum.ru/cpp-beginners/thread307370.html
Вот исходник // программа на использование оператора цикла for #include <iostream.h> void main() { int y,n,m; y = 0; for (n=1; n<2; n=+2) { for (m=1;m<3;m=+n)
C++ Дано натуральное n. Создать квадратную матрицу A не могу разобраться(((( подскажите как? http://www.cyberforum.ru/cpp-beginners/thread307367.html
DosBox и Borland C++ C++
Ребята, пожалуйста помогите! Задали задание -написать игру в графике. У меня виндоус 7, поэтому сказали запускать через досбокс более менее запустила, на ошибки проверяет, а действие написанной программы не показывает что делать??? Добавлено через 2 минуты Borland C++ 1.3
Не работает NULL в Visual C++!! C++
Помогите, пожалуйста)) В Билдере прога работает без ошибок, а вот в ViSUAL C++ ругается на NULL. Пробовал дефайном объявит как константу. Фотка внизу. #include "stdafx.h" #include "iostream" #include "stdio.h" #include "conio.h" #include "string.h"
C++ Как записать динамический массив в файл http://www.cyberforum.ru/cpp-beginners/thread307346.html
есть такой массив double *****massiv_resultatov = new double****; for(i = 0; i < 25; i++) massiv_resultatov = new double***; for(i = 0; i < 25; i++) for(j = 0; j < 15; j++) massiv_resultatov = new double**; for(i = 0; i < 25; i++) for(j = 0; j < 15; j++) for(k = 0; k < 15; k++) massiv_resultatov = new double*; for(i = 0; i < 25; i++) for(j = 0; j < 15; j++) for(k = 0; k < 15;...
C++ Динамическое распределение памяти Не подскажите , здесь где-то есть ошибка? задача : Даны действительные числа . Получить действительную квадратную матрицу порядка n<8, элементами которой являются числа , расположенные в ней по схеме: Матрица размещается в памяти динамически с помощью операции new, значение n вводится по запросу с клавиатуры. В конце работы программы освободить выделенную память. Вывести полученную матрицу. ... подробнее

Показать сообщение отдельно
Foxtrot_1
 Аватар для Foxtrot_1
-10 / 0 / 0
Регистрация: 14.06.2009
Сообщений: 85
29.05.2011, 10:57     Простейший графисеский редактор
Реализовать простейший векторный графический редактор со следующим набором функциональных возможностей:

задание цвета фона, на котором происходит рисование.
рисование точек различного цвета и размера
рисование ломаных линий различного цвета и толщины
рисование многоугольников различного цвета

размер точек и толщину линий выбирать с помощью меню из набора значений 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru