Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Методи поліпшення растрових зображень

Тип Реферат
Предмет Информатика и программирование
Просмотров
836
Размер файла
74 б
Поделиться

Ознакомительный фрагмент работы:

Методи поліпшення растрових зображень

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ

Бердичівський політехнічний коледж

Контрольна робота

з предмета “ Комп’ютерна графіка ”

(варіант №7)

Методи поліпшення растрових зображень

м. Бердичів2007 р.

Зміст

1. Методи поліпшення растрових зображень

2. Параметри виду, буфер глибини, джерело світла в бібліотеці Opengl

3. Використовуючи команди надбудови над Opengl, створити тривимірну фігуру та забезпечити її поворот при натисненні на кнопку пробіл

4. Для попереднього практичного завдання вашого варіанту забезпечити операцію масштабування використовуючи клавіші “+” та “-“


1. Алгоритм побудови лінії

Для побудування лінії необхідно застосувати аргумент команди glBegm - константу GL_LiNES, задаючий примітив "незалежний відрізок".

Для цього примітиву наступні в командних дужках вершини (тобто функції glvertex) задають попарно координати початку і кінця кожного відрізка прямої. Написавши коротенький алгоритм в програмному середовищі Delphi ми отримаємо лінію.

glBegin (GL_LINES);

glVertex2f (-1, 1);

glVertex2f (1 -1);

glVertex2f (-1, -1);

glVertex2f (1, 1);

glEnd;

Малюються два відрізки, сполучаючі кути вікна по діагоналях. Для збільшення товщини відрізків перед командними дужками потрібно вказати ширину лінії:

glLineWidth (2. 5);

Ця функція також повинна виноситися за командні дужки, у ліній можна усувати ступінчастість, що буду виконувати команда glEnable (GL_LINE_SMOOTH); згладжувати нерівності.

glLineWidth (15);

glEnable (GL_LINE_SMOOTH);

glBegin (GL_LINES);

glVertex2f (-0. 7, 0. 7);

викликом і без виклику і подивитеся результати роботи програми з glEnable (GL_LINE_SMOOTH). Отже, константа GL_LiNES задає примітив окремих відрізків, визначених вказівкою пар вершин. Зрозуміло, що кількість вершин повинна бути парною. Наступна константа - GL_LiNE_STRip - визначає примітив, коли перераховуванні вершини послідовно з'єднуються одна за одною. Код, що приводиться, пояснює відмінність цього примітиву від попередньої.

glBegin (GL_LINE_STRIP);

glVertex2f (-l -1);

glVertex2f (-1, 1);

glVertex2f (1, 1);

glVertex2f (l, -l);

glEnd;

Результат - буква П по межі вікна, що задається константою GL_LiNE_Loop, також послідовно з'єднуються перераховані вершини, проте остання вершина замикається з найпершою. Якщо в попередньому прикладі використовувати GL_LiNE__ Loop, буде побудований квадрат по межі вікна. У прикладах на відрізки ми поки використовували безперервну лінію. Для малювання пунктирною лінією перед командними дужками потрібно додати наступні рядки:

glLineStipple (1 $FOFO);glEnable (GL_LINE_STIPPLE);

У функції glLinestipple перший аргумент - масштабний множник, другий аргумент задає шаблон штрихування (побітовим способом). За допомогою програмного середовища Delphiдуже легко можна побудувати - ще один приклад на використання штрихування (мал. 2. 1).


Мал. 2.1. Декілька готових шаблонів штрихових ліній

Призначена для користувача процедура drawOneLine викликається для відтворення кожного окремого відрізка:

procedure TfrmGL. drawOneLine(xl, yl x2, y2: GLfloat);

begin glBegin(GL_LINES);

glVertex2f glVertex2f glEnd;

end;

(2 * xl / ClientWidth - 1. 0, yl (2 * x2 / ClientWidth - 1. 0 y2

/ ClientHeight - 0. 5); / ClientHeight - 0. 5);

Змістовна частина коду перемальовування вікна виглядає так:

glColor3f (1. 0, 1. 0, 1. 0); // всі відрізки малюються білим

// другий рядок: малюється 3 відрізки, все з різним штрихуванням

glEnable (GL_LINE_STIPPLE);

glLineStipple (1, $0101); // точковий

drawOneLine (50. 0, 125. 0, 150. 0, 125. 0);

glLineStipple (1 $OOFF); // штрихи

drawOneLine (150. 0, 125. 0, 250. 0, 125. 0);

glLineStipple (1 $1C47); // штріхпунктір

drawOneLine (250. 0, 125. 0, 350. 0, 125. 0);// третій рядок: малюється три широкі відрізки з тим же штрихуванням

glLineWidth (5. 0); // задаємо ширину лінії

glLineStipple (1, $0101);

drawOneLine (50. 0, 100. 0, 150. 0, 100. 0);

glLineStipple (1 $00FF);

drawOneLine (150. 0, 100. 0, 250. 0, 100. 0);

glLineStipple (1 $1C47);

drawOneLine (250. 0, 100. 0, 350. 0, 100. 0);

glLineWidth (1. 0);// в першому рядку малюється 6 відрізків, шаблон "пунктир/точка/пунктир", // як частини одного довгого відрізка, без виклику процедури

drawOneLine glLineStipple (1 $1C47);

glBegin (GL_LINE_STRIP);

for i: = 0 to 6 do

glVertex2f ( 2 * (50. 0 + (i * 50. 0)) / ClientWidth - 1. 0, 75. 0 / ClientHeight);

glEnd;// Четвертий рядок - аналогічний результат, але 6 отдельньк відрізків for i: = 0 to 5 do

drawOneLine (50. 0 + i * 50. 0, 50. 0, 50. 0 + (i+l) * 50. 0, 50. 0); // п'ятий рядок - малюється один штрихпунктирний відрізок, множник = 5 glLineStipple (5 $1С47);

drawOneLine (50.0, 25.0, 350.0, 25.0);

Після виконання побудови такого алгоритму ми отримаємо з ліній картинку, що буду нагадувати бенгальський вогник.

glEnable (GL_LINE_STIPPLE) ;

For i := 1 to 100 do begin

glColor3f (random, random, random);

glLineStipple (random (5), random ($FFFF) ) ;

glBegin (GL_LINES);

glVertex2f (xpos, ypos) ;

glVertex2f (xpos + 0.5 * random * sin (random (360)),

ypos + 0.5 * random * cos (random (360)));

glEnd; end;

2. Параметри виду, буфер глибини, джерело світла в бібліотеці Opengl

Щоб зрозуміти, що таке параметри виду нам допоможе один з примірив посібника бібліотек OpenGL. Почнемо подальше вивчення з того, що збільшимо об'єм куба. Проект з підкаталогу ExOl нам допоможе. Основна послідовність дій поміщена між командами giPushMatrix і glPopMatrix. Якщо цього не робити, то при кожному перемальовуванні вікна, наприклад, при зміні його розмірів, сцена зменшуватиметься в розмірах. Тут зустрічається нова для нас команда - giFrustum, задаюча параметри вигляду, зокрема, визначальні область відтворення в просторі. Все, що виходить за межі цієї області, відсікатиметься при відтворенні. Перші два аргументи задають координати площин відсікання зліва і справа, третій і четвертий параметри визначають координати площин відсікання знизу і зверху. Останні аргументи задають відстані до ближньої і дальньої площин відсікання, значення цих двох параметрів повинні бути позитивними - це не координати площин, а відстані від ока спостерігача до площин відсікання.

wglMakeCurrent(Canvas.Handle, hrc);

glViewport(0, 0, ClientWidth, ClientHeight);

9lPushMatrix;

glFrustum (-1, 1, -1, 1, 3, 10); // задаем перспективу

glTranslatef(0.0, 0.0, -5.0); // перенос объекта по оси 1

9lClearColor (0.5, 0.5, 0.75, 1.0);

glClear (GL_COLOR_BUFFER_BIT) ;

glColor3f (1.0, 0.0, 0.5);

glBegin (GLJTRIANGLES);

glVertex3f (-1, -1, 0);

glVertex3f (-1, 1, 0) ;

glVertexSf (1, 0, h);

glEnd;

glPopMatnx;SwapBuffers (Canvas.Handle);

wglMakeCurrent (0, 0) ;

На даному прикладі показаний трикутник. Тепер все, що малюється з нульовим значенням координати Z, не буде видно спостерігачу, оскільки ближню площину відсікання ми розташували на відстані трьох одиниць від ока спостерігача, розташованого в крапці (0, 0, 0). Тому перед відтворенням трикутника зміщуємо систему координат на п'ять одиниць вниз. Трикутник віддалився від спостерігача, і його вершини розташовуються вже не на межі вікна, а змістилися углиб екрану. Це нескладне міркування передує наступному прикладу - проект з підкаталогу Ех03. Для підвищення надійності роботи додатку користуємося явно одержуваним посиланням на контекст пристрою, а не значенням властивості canvas.Handle Відразу ж після отримання контексту відтворення робимо його поточним в обробнику події create форми, а безпосередньо перед видаленням звільняємо контекст в обробнику Destroy. Тепер такі параметри OpenGL, як колір фону і колір примітивів, можна задавати єдиний раз - при створенні форми, а не виконувати цю дію кожного разу при перемальовуванні екрану. На відміну від всіх попередніх проектів, в даному з'являється окремий обробник події, пов'язаної із зміною розмірів вікна. Якщо пригадати то, раніше при цій події виконувався той же код, що і при перемальовуванні вікна. У всіх прикладах, що залишилися, як правило, буде присутній окремий обробник події, пов'язаної із зміною розмірів вікна. У цьому обробнику задається область висновку і встановлюються параметри вигляду, після чого вікно необхідно перемальовувати:


procedureTfrmGL.FormResize(Sender: TObject);

beginlViewport (0, 0, ClientWidth, ClientHeight);

glLoadldentity; iFrustum (-1, 1 -1, 1, 3, 10); // видові параметри

lTranslatef (0.0, 0.0, -5.0); // початкове зрушення системи координат

InvalidateRect(Handle, nil. False);

end;

Код, пов'язаний з перемальовуванням вікна, тепер скорочується в становиться більш коректним:

Procedure TfrmGL.FormPaint(Sender: TObject);

WClear (GL_COLOR_BUFFER_BIT);

9lBegin (GLJTRIANGLES);

glVertex3f (-1, -1, 0);

glVertex3f (-l, 1, 0);

glVertex3f (1, 0, h);

glEnd;

SwapBuffers(DC);

end;

Аргументи команди giortho мають такий самий сенс, що і у giFrustum, але останні два аргументи можуть мати негативне значення. Крім цих двох команд, OpenGL надає ще декілька можливостей установки видових параметрів, наприклад, бібліотека glu містить команду giuOrtho2D. Ця команда має чотири аргументи, сенс яких такий же, як і у giortho. По своїй дії вона еквівалентна виклику giortho з вказівкою значення відстані до ближньої площини відсікання рівним мінус одиниці, і відстанню до дальньої площини відсікання рівним одиниці. Як при такій проекції виглядає куб з попередніх прикладів.

Зверніть увагу, що тут відсутнє початкове зрушення по осі Z:

procedureTfrmGL.FormResize(Sender: TObject);

begin

glViewport(0, 0, ClientWidth, ClientHeight);

glLoadldentity;

gluOrtho2D (-2, 2 -2, 2); // задаємо перспективу

glRotatef (30.0, 1.0, 0.0, 0.0); // поворот об'єкту - вісь X

glRotatef (60.0, 0.0, 1.0, 0.0); // поворот об'єкту - вісь Y

InvalidateRect(Handle, nil, False);end;

Куб малюється навколо ока спостерігача і проектується на площину екрану. Згідно установкам цієї команди передня і задня частини нашого куба частково обрізаються. Наступна команда, яку ми розглянемо, мабуть, найбільш популярна в плані використання для первинного завдання видових параметрів. Команда gluPerspective, як ясно з її назви, також знаходиться в бібліотеці glu. Проект прикладу міститься в підкаталозі Ех09, а отримується в результаті роботи програми картинка показана на мал.1.

мал.1

У них можна міняти значення всіх аргументів команди gluLookAt, і оскільки цих аргументів порівняно багато, я створив допоміжну форму, в полях редагування якої виводяться і задаються користувачем координати всіх дев'яти аргументів Рекомендую обов'язково попрактикувати з цим прикладом, щоб "відчути" роботу параметрів Звернете увагу, що, як підкреслюється в документації, вектор "up" не повинен бути паралельним лінії, що сполучає точку зору і контрольну крапку.

Буфер глибини

При створенні контексту відтворення до числа параметрів формату пікселів входять розміри розділів пам'яті, що надається для потреб OpenGL, або буферів. Крім буферів кадру, в OpenGL присутні ще три буфери: буфер глибини, буфер трафарету і допоміжний буфер. Для спеціальних потреб можуть використовуватися ще буфер вибору і буфер зворотного зв'язку, вони готуються користувачем у міру потреби. Як ясно з його назви, він використовується для передачі простору При відтворенні кожного піксела в цей буфер записується інформація про значення координати Z піксела, так звана віконна Z. Якщо на піксел доводиться декілька крапок, на екран виводиться крапка з найменшим значенням цієї координати. При просторових побудовах відмова від використання буфера глибини приводить до невірної передачі простору. З буфером глибини пов'язані дві команди: glDepthFunc І glDepthRange. Хоч вони застосовуються досить рідко, уявлення про них мати не перешкодить. Перша з цих команд задає правило, по якому відбувається порівняння значення віконного Z перед виведенням піксела. За умовчанням встановлено значення GL_LESS - виводити на екран крапки з мінімальним значенням віконної Z. Решта значень призводить найчастіше до того, що взагалі нічого не буде виведено. Друга команда задає розподіл віконної координати Z при перекладі з нормалізованих координат у віконні.

Джерело світла

Попередні приклади навряд чи можуть задовольнити кого-небудь через свою невиразність. Мальований кубик швидше вгадується, всі грані покриті монотонним кольором, за яким втрачається простір. Щоб збільшити реалізм одержуваних побудов. Ось в наступному прикладі кубик малюється реалістичніше - мал. 2.

Мал. 2

При створенні вікна включається джерело світла:

glEnable (GL_LIGHTING); // вирішуємо роботу з освітленістю

glEnable(GL_LIGHTO); // включаємо джерело світла

Це мінімальні дії для включення джерела світла. Тепер в сцені присутнє одне джерело світла з ім'ям 0. При необхідності можна "встановити" декілька джерел, для цього так само використовується команда glEnable, наприклад:

glEnable (GL_LIGHT1); // включаємо джерело світла 1

Поки немає сенсу використовувати додаткові джерела світла, це ніяк не вплине на одержувані картинки, оскільки всі джерела світла, що додаються, використовують установки, прийняті за умовчанням, і нічим не відрізняються один від одного. При малюванні кожної сторони куба задається вектор нормалі, використовуваний для розрахунку колірних параметрів кожного пікселя. Для скорочення коду з шести сторін куба залишаємо шість, три безпосередньо видимі спостерігачу.

glBegin (GL_QUADS);

glNormal3f(0. 0, 0. 0, 1. 0);

glVertex3f(1. 0, 1. 0, 1. 0);

glVertex3f(-1. 0, 1. 0, 1. 0);

glVertex3f(-1. 0 -1. 0, 1. 0);

glVertex3f(1. 0 -1. 0, 1. 0);

glEnd;

glBegin(GL_QUADS);

glNormal3f(-1. 0, 0. 0, 0. 0);

glVertex3f(-1. 0, 1. 0, 1. 0);

glVertex3f(-1. 0, 1. 0 -1. 0);

glVertex3f{-1. 0 -1. 0 -1. 0)

glVertex3f(-1. 0-1. 0,1. 0);

glEnd;

glBegin(GL_QUADS);

glNormal3f(0. 0, 1. 0, 0. 0);

glVertex3f(-1. 0, 1. 0 -1. 0);

glVertex3f(-1. 0, 1. 0, 1. 0);

glVertex3f(1. 0, 1. 0, 1. 0);

glVertex3f(1. 0, 1. 0 -1. 0);

glEnd;

У заголовку вікна виводить це одержуване при створенні вікна, за допомогою команди glGet:

glGetintegerv (GL_MAX_LIGHTS, @wrk);

Caption: = intToStr (wrk);

Вектора нормалей будуються перпендикулярно кожній стороні куба. Внаслідок того, що наш кубик будується навколо крапки (0, 0, 0), аргументи glNomal3f в даному випадку співпадають з точкою перетину діагоналей кожної грані куба.

glNormal3f(-1. 0, 0. 0, 0. 0);

Де б не розташовувався в просторі майданчик, вона освітлюється одноманітно, щоб можна було поглянути на майданчик з різних точок зору. Якщо ми дивимося на задню сторону майданчика, то бачимо, що вона забарвлюється чорним кольором. У деяких ситуаціях необхідно, щоб при такому положенні точки зору спостерігача примітив не відображався взагалі, наприклад, при відтворенні об'єктів, утворюючих замкнутий об'єм, немає необхідності витрачати час на відтворення примітивів, свідомо нам не видимих, раз вони повернені до нас задньою стороною, майданчик не малюється, якщо повернена до спостерігача задньою стороною. Для цього необхідно включити відсікання задніх сторін багатокутників:

glEnable (GL_CULL_FACE);

Команда glcullFace дозволяє задавати, які сторони при цьому піддаються відсіканню, передні або задні. Зрозуміло, що за умовчанням пропонується відсікати задні сторони. Протилежне правило відсікання можна встановити так:

glCullFace (GL_FRONT);


3. Використовуючи команди надбудови над OpenGl створити тривимірну фігуру та забезпечити її поворот при натисненні на кнопку пробіл

Я взяла для виконання свого завдання програму Delphi і побудувала сферу на формі придавши їй червоного кольору, лістинг програми матиме такий вигляд:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

OpenGL, Menus;

type

TfrmGL = class(TForm)

procedure FormCreate(Sender: TObject);

procedure FormPaint(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure FormResize(Sender: TObject);

procedure FormKeyPress(Sender: TObject; var Key: Char);

private

DC : HDC; //контекст пристрою

hrc: HGLRC; //контекст відображення

ry : GLfloat; //зміна координати по У

tx : GLfloat; //зміна координати по Х

end;

var

frmGL: TfrmGL;

mode : (POINT, LINE, FILL) = FILL; //режими відображення обєкта

mx,my:byte; //коефіцієнти збільшення/зменшення

implementation

uses DGLUT;

{$R *.DFM}

procedure TfrmGL.FormPaint(Sender: TObject);

begin

glClear (GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); // очищення буферу кольору

glPushMatrix; //заповнюємо систему координат

glScalef (my/mx, my/mx, my/mx); //виконуємо маштабування

glRotatef (ry, 0.0, 1.0, 0.0); //виконуємо потовот

glTranslatef (tx, 0.0, 0.0); //виконуємо перенесення

case mode of //вибираємо режим відображення

POINT : glPolygonMode (GL_FRONT_AND_BACK, GL_POINT);

LINE : glPolygonMode (GL_FRONT_AND_BACK, GL_LINE);

FILL : glPolygonMode (GL_FRONT_AND_BACK, GL_FILL);

end;

glutSolidSphere (1.5, 20, 20); //будуємо сферу

glScalef (mx/my, mx/my, mx/my); //повертаємо систему в початкове полож

glPopMatrix; //повертаємо систему в попереднє положення

SwapBuffers(DC); //відображуємо на екрані

end;

procedure SetDCPixelFormat (hdc : HDC);

var

pfd : TPixelFormatDescriptor;

nPixelFormat : Integer;

begin

FillChar (pfd, SizeOf (pfd), 0);

pfd.dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;

nPixelFormat := ChoosePixelFormat (hdc, @pfd);

SetPixelFormat (hdc, nPixelFormat, @pfd);

end;

procedure TfrmGL.FormCreate(Sender: TObject);

begin

DC := GetDC (Handle);

SetDCPixelFormat(DC);

hrc := wglCreateContext(DC);

wglMakeCurrent(DC, hrc);

glClearColor (0.5, 0.5, 0.75, 1.0); // цвет фона

glLineWidth (1.5);

glEnable (GL_LIGHTING);

glEnable (GL_LIGHT0);

glEnable (GL_DEPTH_TEST);

glEnable (GL_COLOR_MATERIAL);

glColor3f (1.0, 0.0, 0.0);

ry := 0.0;

tx := 0.0;

mx:=10;

my:=10;

end;

procedure TfrmGL.FormDestroy(Sender: TObject);

begin

wglMakeCurrent(0, 0);

wglDeleteContext(hrc);

ReleaseDC (Handle, DC);

DeleteDC (DC);

end;

procedure TfrmGL.FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

If Key = VK_ESCAPE then Close;

If Key = VK_LEFT then begin

ry := ry + 2.0;

InvalidateRect(Handle, nil, False);

end;

If Key = VK_RIGHT then begin

ry := ry - 2.0;

InvalidateRect(Handle, nil, False);

end;

If Key = VK_UP then begin

tx := tx - 0.1;

InvalidateRect(Handle, nil, False);

end;

If Key = VK_DOWN then begin

tx := tx + 0.1;

InvalidateRect(Handle, nil, False);

end;

If Key = 49 then begin

mode := POINT;

InvalidateRect(Handle, nil, False);

end;

If Key = 50 then begin

mode := LINE;

InvalidateRect(Handle, nil, False);

end;

If Key = 51 then begin

mode := FILL;

InvalidateRect(Handle, nil, False);

end;

end;

procedure TfrmGL.FormResize(Sender: TObject);

begin

glViewport(0, 0, ClientWidth, ClientHeight);

glMatrixMode (GL_PROJECTION);

glLoadIdentity;

glFrustum (-1, 1, -1, 1, 2, 9);

glMatrixMode (GL_MODELVIEW);

glLoadIdentity;

// этот фрагмент нужен для придания трёхмерности

glTranslatef(0.0, 0.0, -5.0); // перенос объекта - ось Z

glRotatef(30.0, 1.0, 0.0, 0.0); // поворот объекта - ось X

glRotatef(70.0, 0.0, 1.0, 0.0); // поворот объекта - ось Y

InvalidateRect(Handle, nil, False);

end;


4. Для попереднього практичного завдання вашого варіанту забезпечити операцію маштабування використовуючи клавіши “+” та “-“

Потім для точного виконання завдання виконала слідуючий алгоритм дій при цьому використала згідно варіанту клавіші «+» та «-», що по умові завдання виконують наближення та відділення фігури на фоні:

procedure TfrmGL.FormKeyPress(Sender: TObject; var Key: Char);

begin

if key = '-' then mx:=mx+1;

if key = '+' then mx:=mx-1;

InvalidateRect(Handle, nil, False);

end;

end.


Список використаної літератури

1. С.В. Глушаков, Г.А. Крабе Компютерная графика, Харьков 2002

2. Блінова Т.О., Порєв В.М. Комп’ютерна графіка / За _ед.. В.М.Горєва. – К.: Видавництво “Юніор”, 2004

3. OpenGl, технология ставшая символов, Учебник в примерах

4. Конспект лекцій

5. Мережа Інтернет


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Филиал государственного бюджетного образовательного учреждения высшего образования Московской област
Спасибо Елизавете за оперативность. Так как это было важно для нас! Замечаний особых не бы...
star star star star star
РУТ
Огромное спасибо за уважительное отношение к заказчикам, быстроту и качество работы
star star star star star
ТГПУ
спасибо за помощь, работа сделана в срок и без замечаний, в полном объеме!
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

Лабораторная, Программирование

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно