Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2012, 23:26   #1
Dr.Teck
 
Регистрация: 13.05.2012
Сообщений: 4
Сообщение нужно прокоментировать строчки кода..

Код:
#include<glut.h>
#include<vector>
#include<time.h>
#include"Point.h"
#include"Color.h"
#include"Define.h"
using namespace std;

float x;
float y;
float lastx, lasty;
vector<vector<Point> >Tp;
int CurPos=-1;
bool down;
float TotalWid=400.0;
float TotalHei=400.0;
Color c(1.0, 1.0, 1.0);
float w=1.0;
int linew[2];

void Draw()
{
	glClear(GL_COLOR_BUFFER_BIT);
	if(down)
	{
		if(lastx!=x || lasty!=y)
		{
			Point *temp=new Point(c, x, y, w);
			Tp[CurPos].push_back(*temp);
		}
	}
	for(vector<vector<Point> >::iterator j=Tp.begin(); j!=Tp.end(); j++)
	{
		j->begin()->Set();
		glBegin(GL_LINE_STRIP);
		for(vector<Point>::iterator i=j->begin(); i!=j->end(); i++)
		{
			i->draw();
		}
		glEnd();
	}
	glutSwapBuffers();
}

void Timer(int)
{
	glutPostRedisplay();
	glutTimerFunc(10, Timer, 0);
}

void MousePressed(int button, int state, int ax, int ay)
{
	lastx=x;
	lasty=y;
	down = button==GLUT_LEFT_BUTTON && state==GLUT_DOWN;
	x=ax;
	y=ay;
	if(down)
	{
		++CurPos;
		vector<Point> *temp=new vector<Point>;
		Tp.push_back(*temp);
	}
}

void MouseMovePressed(int ax, int ay)
{
	if(down)
	{
		lastx=x;
		lasty=y;
		x=ax;
		y=ay;
	}
}

void MenuCheckG(int){}

void MenuCheckC(int v)
{
	switch(v)
	{
	case COLOR_WHITE: c.Change(1.0, 1.0, 1.0); break;
	case COLOR_RED: c.Change(1.0, 0.0, 0.0); break;
	case COLOR_GREEN: c.Change(0.0, 1.0, 0.0); break;
	case COLOR_BLUE: c.Change(0.0, 0.0, 1.0); break;
	case COLOR_RANDOM: c.Change(rand()%100/100.0, rand()%100/100.0, rand()%100/100.0); break;
	}
}

void MenuCheckW(int v)
{
	switch(v)
	{
	case WIDTH_SMALLEST: w=1; break;
	case WIDTH_SMALL: w=2; break;
	case WIDTH_HIGH: w=3; break;
	case WIDTH_HIGHEST: w=4; break;
	case WIDTH_RANDOM: w=rand() % (linew[1]-linew[0]) + linew[0]; break;
	}
}

void MenuInit()
{
	int M=glutCreateMenu(MenuCheckG);
	int MC=glutCreateMenu(MenuCheckC);
	glutSetMenu(MC);
	glutAddMenuEntry("Белый", COLOR_WHITE);
	glutAddMenuEntry("Красный", COLOR_RED);
	glutAddMenuEntry("Зелёный", COLOR_GREEN);
	glutAddMenuEntry("Синий", COLOR_BLUE);
	glutAddMenuEntry("Случайный", COLOR_RANDOM);
	int MW=glutCreateMenu(MenuCheckW);
	glutSetMenu(MW);
	glutAddMenuEntry("Самая тонкая", WIDTH_SMALLEST);
	glutAddMenuEntry("Тонкая", WIDTH_SMALL);
	glutAddMenuEntry("Толстая", WIDTH_HIGH);
	glutAddMenuEntry("Самая толстая", WIDTH_HIGHEST);
	glutAddMenuEntry("Случайная", WIDTH_RANDOM);
	glutSetMenu(M);
	glutAddSubMenu("Изменить цвет", MC);
	glutAddSubMenu("Изменить ширину", MW);
	glutAttachMenu(GLUT_RIGHT_BUTTON);
}

void Initialize()
{
	glClearColor(0.0, 0.0, 0.0, 0.0);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrtho(0, TotalWid, TotalHei, 0, -1.0, 1.0);
}

int main(int argc, char** argv)
{
	srand(time(0));
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
	glutInitWindowSize(400, 400);
	glutInitWindowPosition(100, 200);
	glutCreateWindow("Let's draw!");
	Initialize();
	glutDisplayFunc(Draw);
	glutTimerFunc(10, Timer, 0);
	glutMouseFunc(MousePressed);
	glutMotionFunc(MouseMovePressed);
	MenuInit();
	glGetIntegerv(GL_LINE_WIDTH_RANGE, linew);
	glutMainLoop();
	return 0;
}

Последний раз редактировалось ACE Valery; 16.12.2012 в 18:39.
Dr.Teck вне форума Ответить с цитированием
Старый 15.12.2012, 23:58   #2
Murashov
Форумчанин
 
Аватар для Murashov
 
Регистрация: 30.10.2012
Сообщений: 121
По умолчанию

закомментировать? окей:
Код:
/*#include<glut.h> 
#include<vector> 
#include<time.h> 
#include"Point.h" 
#include"Color.h" 
#include"Define.h" 
using namespace std; 

float x; 
float y; 
float lastx, lasty; 
vector<vector<Point> >Tp; 
int CurPos=-1; 
bool down; 
float TotalWid=400.0; 
float TotalHei=400.0; 
Color c(1.0, 1.0, 1.0); 
float w=1.0; 
int linew[2]; 

void Draw() 
{ 
    glClear(GL_COLOR_BUFFER_BIT); 
    if(down) 
    { 
        if(lastx!=x || lasty!=y) 
        { 
            Point *temp=new Point(c, x, y, w); 
            Tp[CurPos].push_back(*temp); 
        } 
    } 
    for(vector<vector<Point> >::iterator j=Tp.begin(); j!=Tp.end(); j++) 
    { 
        j->begin()->Set(); 
        glBegin(GL_LINE_STRIP); 
        for(vector<Point>::iterator i=j->begin(); i!=j->end(); i++) 
        { 
            i->draw(); 
        } 
        glEnd(); 
    } 
    glutSwapBuffers(); 
} 

void Timer(int) 
{ 
    glutPostRedisplay(); 
    glutTimerFunc(10, Timer, 0); 
} 

void MousePressed(int button, int state, int ax, int ay) 
{ 
    lastx=x; 
    lasty=y; 
    down = button==GLUT_LEFT_BUTTON && state==GLUT_DOWN; 
    x=ax; 
    y=ay; 
    if(down) 
    { 
        ++CurPos; 
        vector<Point> *temp=new vector<Point>; 
        Tp.push_back(*temp); 
    } 
} 

void MouseMovePressed(int ax, int ay) 
{ 
    if(down) 
    { 
        lastx=x; 
        lasty=y; 
        x=ax; 
        y=ay; 
    } 
} 

void MenuCheckG(int){} 

void MenuCheckC(int v) 
{ 
    switch(v) 
    { 
    case COLOR_WHITE: c.Change(1.0, 1.0, 1.0); break; 
    case COLOR_RED: c.Change(1.0, 0.0, 0.0); break; 
    case COLOR_GREEN: c.Change(0.0, 1.0, 0.0); break; 
    case COLOR_BLUE: c.Change(0.0, 0.0, 1.0); break; 
    case COLOR_RANDOM: c.Change(rand()%100/100.0, rand()%100/100.0, rand()%100/100.0); break; 
    } 
} 

void MenuCheckW(int v) 
{ 
    switch(v) 
    { 
    case WIDTH_SMALLEST: w=1; break; 
    case WIDTH_SMALL: w=2; break; 
    case WIDTH_HIGH: w=3; break; 
    case WIDTH_HIGHEST: w=4; break; 
    case WIDTH_RANDOM: w=rand() % (linew[1]-linew[0]) + linew[0]; break; 
    } 
} 

void MenuInit() 
{ 
    int M=glutCreateMenu(MenuCheckG); 
    int MC=glutCreateMenu(MenuCheckC); 
    glutSetMenu(MC); 
    glutAddMenuEntry("Белый", COLOR_WHITE); 
    glutAddMenuEntry("Красный", COLOR_RED); 
    glutAddMenuEntry("Зелёный", COLOR_GREEN); 
    glutAddMenuEntry("Синий", COLOR_BLUE); 
    glutAddMenuEntry("Случайный", COLOR_RANDOM); 
    int MW=glutCreateMenu(MenuCheckW); 
    glutSetMenu(MW); 
    glutAddMenuEntry("Самая тонкая", WIDTH_SMALLEST); 
    glutAddMenuEntry("Тонкая", WIDTH_SMALL); 
    glutAddMenuEntry("Толстая", WIDTH_HIGH); 
    glutAddMenuEntry("Самая толстая", WIDTH_HIGHEST); 
    glutAddMenuEntry("Случайная", WIDTH_RANDOM); 
    glutSetMenu(M); 
    glutAddSubMenu("Изменить цвет", MC); 
    glutAddSubMenu("Изменить ширину", MW); 
    glutAttachMenu(GLUT_RIGHT_BUTTON); 
} 

void Initialize() 
{ 
    glClearColor(0.0, 0.0, 0.0, 0.0); 
    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 
    glOrtho(0, TotalWid, TotalHei, 0, -1.0, 1.0); 
} 

int main(int argc, char** argv) 
{ 
    srand(time(0)); 
    glutInit(&argc, argv); 
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB); 
    glutInitWindowSize(400, 400); 
    glutInitWindowPosition(100, 200); 
    glutCreateWindow("Let's draw!"); 
    Initialize(); 
    glutDisplayFunc(Draw); 
    glutTimerFunc(10, Timer, 0); 
    glutMouseFunc(MousePressed); 
    glutMotionFunc(MouseMovePressed); 
    MenuInit(); 
    glGetIntegerv(GL_LINE_WIDTH_RANGE, linew); 
    glutMainLoop(); 
    return 0; 
}  */
Murashov вне форума Ответить с цитированием
Старый 16.12.2012, 18:25   #3
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Dr.Teck, кода многовато, никто его объяснять не станет. Гуглите про неизвестные вам функции/константы/еще что-нибудь, читайте, разбирайтесь.
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прокоментировать пару строк кода kilogram PHP 9 28.03.2012 23:20
Fstream .. четыре строчки кода упорно не хотят работать Jugger Помощь студентам 8 19.04.2011 19:12
нужно прокоментировать код Владимир31 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 04.04.2011 23:45
Прокоментировать 2 строки Syltan Общие вопросы C/C++ 8 24.09.2009 18:29