Уроки, алгоритмы, программы, примеры

Вход на сайт

Материалы по разделам

Построения
на плоскости (2D)
Графика
в пространстве (3D)
Вычислительная
геометрия
Физическое
моделирование
Фрактальная
графика

Новые комментарии

КРУГОВОЙ ФРАКТАЛ -ОШИБОЧНАЯ ПРОГРАММА! ПАПА ЗибЕрт
Можешь обяснить подробно что как работает, и почему массу не задаем
Здравствуйте, Ильгиз. Математика - царица наук (Карл Гаусс). Изучение математики начинается с детского сада, когда нас учат считать и выполнять простые арифметические операции. Любой, даже самый простейший алгоритм будет связан с арифметическими...
Я хотел узнать математика это обязательно в программирование. Пять лет назад просто из любопытства я увлекся HTML потом изучил CSS и JvaScript потом изучил PHP и Java. Как то не задумывался и начал смотреть форумы и узнал что без математики не...
Все верно, но так же необходимо зайти в: Компоновщик -> Ввод -> Дополнительные зависимости Здесь необходимо нажать изменить и в Дополнительные зависимости прописать это: SDL2.lib SDL2main.lib SDL2test.lib Без этого не заработает. (MVS 2015)

Счетчики и рейтинг

Яндекс.Метрика Рейтинг@Mail.ru
Мастерская воды примите во внимание некоторые наши советы Лабораторный анализ воды.
Язык программирования: 
C/C++
Среда программирования: 
Visual Studio 2013

#include <glut.h>
#include <math.h>
#include <stdlib.h>
#include <iostream>
 
using namespace std;
 
float aut, aut2, aut3;//счетчик
float x, y;//координаты
float angle, angle2, angle3, angle4;//параметр отвечающий за движение
float sk = 1;
 
//сохранение пропорций
void proporsion(int w, int h)
{
	if (h == 0)
	{
		h = 1;
	}
	float ratio = float(w) / h;
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluPerspective(45, ratio, 500, 500);
	glMatrixMode(GL_MODELVIEW);
}
 
//рисование
void paint(void)
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// очистка буфера
 
	//четырехугольник
	glPushMatrix();
	glScalef(sk, sk, sk);
	glRotatef(angle2, 0, 0, 1);
 
	glPushMatrix();
	glTranslatef(0, 10 - angle, 0);
	glBegin(GL_QUADS);//рисуем квадрат
	glColor3ub(0, 0, 0);//цвет
	glVertex2f(-2.5, -2.5);
	glVertex2f(-2.5, 2.5);
	glVertex2f(2.5, 2.5);
	glVertex2f(2.5, -2.5);
	glEnd();
	glPopMatrix();
 
 
	glPushMatrix();
	glTranslatef(-10 + angle, 0, 0);
	glRotatef(45, 0, 0, 1);
	glBegin(GL_QUADS);//рисуем квадрат
	glColor3ub(0, 0, 0);//цвет
	glVertex2f(-2.5, -2.5);
	glVertex2f(-2.5, 2.5);
	glVertex2f(2.5, 2.5);
	glVertex2f(2.5, -2.5);
	glEnd();
	glPopMatrix();
 
	glPushMatrix();
	glTranslatef(0, -10 + angle, 0);
	glRotatef(25, 0, 0, 1);
	glBegin(GL_QUADS);//рисуем квадрат
	glColor3ub(0, 0, 0);//цвет
	glVertex2f(-2.5, -2.5);
	glVertex2f(-2.5, 2.5);
	glVertex2f(2.5, 2.5);
	glVertex2f(2.5, -2.5);
	glEnd();
	glPopMatrix();
 
	glPushMatrix();
	glTranslatef(10 - angle, 0, 0);
	glRotatef(65, 0, 0, 1);
	glBegin(GL_QUADS);//рисуем квадрат
	glColor3ub(0, 0, 0);//цвет
	glVertex2f(-2.5, -2.5);
	glVertex2f(-2.5, 2.5);
	glVertex2f(2.5, 2.5);
	glVertex2f(2.5, -2.5);
	glEnd();
	glPopMatrix();
	//glPopMatrix();
 
	glPopMatrix();
	glutSwapBuffers();
 
}
//установка таймера
void Timer(int)
{
	angle += 0.5 - aut;
	if (angle > 9.5)
	{
		aut = 0.5;
		angle2 += 5;
		sk -= 0.05;
		if (sk < 0.05)
		{
			angle = 0;
			sk = 1;
			aut = 0;
		}
	}
	cout << sk << endl;
	glutTimerFunc(50, Timer, 0);//обновлять экран каждые 15мсек
	glutPostRedisplay();
}
 
int main(int argc, char **argv) {
 
	// инициализация
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);//double: буфер рисвания и буф сторонних вычислений
	glutInitWindowPosition(100, 100);//позиция окна
	glutInitWindowSize(500, 500);//размеры окна
	glutCreateWindow("Совмещение квадратов");//название окна
	glClearColor(1.0, 1.0, 1.0, 1.0);//цвет окна
	glOrtho(-5.0, 5.0, -5.0, 5.0, -5.0, 5.0);//установка границ
 
	glutDisplayFunc(paint);//вызов функции рисования
	glutReshapeFunc(proporsion);//вызов функции сохранения пропорций
	glutTimerFunc(0, Timer, 0);//вызов таймера
	glutMainLoop();//основной цикл
	return 1;
}

Прикрепленный файлРазмер
Basov-Tishenko_Alexandr_Sovmeshenie_Kvadratov.rar928.16 кб

Комментарии

ильгиз аватар
Опубликовано ильгиз (не проверено) в 10. Февраль 2017 - 14:35.

Я хотел узнать математика это обязательно в программирование. Пять лет назад просто
из любопытства я увлекся HTML потом изучил CSS и JvaScript потом изучил PHP и Java.
Как то не задумывался и начал смотреть форумы и узнал что без математики не стать
программистом.Пожалел что потерял время на изучение мне 50.В свое время я не учил
математику.Пожалуйста ответьте.

admin аватар
Опубликовано admin в 13. Февраль 2017 - 11:47.

Здравствуйте, Ильгиз.

Математика - царица наук (Карл Гаусс). Изучение математики начинается с детского сада, когда нас учат считать и выполнять простые арифметические операции. Любой, даже самый простейший алгоритм будет связан с арифметическими вычислениями. Поэтому без математики не стать программистом. Однако, хороший программист оперирует сложными алгоритмами, построенными по законам различных разделов математики: геометрии, алгебры, теории множеств, тригонометрии и т.д. Большинство алгоритмов, представленных на данном сайте, являются самыми простыми алгоритмами компьютерной графики. При этом они используют известные математические формулы.