Ступенчатость (лестничный эффект) — искажение графического изображения, получаемое на графическом растровом дисплее при увеличении. Основная причина — использование дискретного устройства (изображение строится из отдельных пикселов) для создания непрерывных объектов (линии, ребра, поверхности). Искажения возникают вследствие того, что координаты пиксела, как маленького объекта, несовпадают с координатами точки объекта. Поэтому одни объекты (сопоставимые с размером пиксела) остаются Читать далее
All posts by admin
Использование свертки. Уравнение свертки. Пример.
Физический смысл свертки состоит в следующем. Для сигнала изображения и ядра (функции свертки) определяется свертка сигнала, а результат испоьзуется для определения результирующих атрибутов пиксела. Математически это можно представить так: где — ядро или функция свертки; — свертываемая функция; — свертка и.
Применение аппроксимации для ликвидации ступенчатости. Приемы. Примеры.
Аппроксимация полутонами. Метод, позволяющий получить сглаживание граничного края с использованием соответствующих комбинаций минимального количества уровней интенсивности (Рис.5). Известен давно. Еще в 1880 г. Стефан Хаген изобрел современную полутоновую печать. Полутоновая печать — способ получения фотографических полутонов с использованием только дух уровней (черном на белом) по решеточному или клеточному принципу. Клетка варьируется в зависимости от величины Читать далее
Свет в компьютерной графике. Отражение и преломление. Закон косинусов Ламберта.
Свет — физическое явление, обладающее дуализмом (поток частиц распространяющихся по прямолинейным траекториям и в то же время электромагнитные волны). Интенсивность света определяется амплитудой волны, цвет — частотой или длиной волны. Математически описывается уравнениями Максвелла. Произвольный луч — сумма волн с разными длинами, распространяющихся в одном направлении. Вклад волны с длиной ? определяется функцией I(?), т.е. Читать далее
Основы метода трассировки лучей и излучательности.
Рассмотрим сцену (Рис.1) состоящую из источника света и ряда объектов. Свет, распространяясь от источника по прямым линиям может изменять свое направление. При этом, в зависимости от типа объекта через который проходят лучи, свет может преломиться, уйти внутрь или отразиться. Процесс идет непрерывно, пока часть в конце концов не попадет в глаз наблюдателя, формируя изображение на Читать далее
Файл ELECTRO.cpp – исходный текст программы
/* Редактор построения электрических схем. Данная программа позволяет конструировать схемы, применяемые в электронике и электротехнике. */ // Объявление используемых стандартных библиотек
Создание макета кнопок
line(8,85,108,85);//нижняя граница 1-го ряда кнопок line(8,120,108,120);//нижняя граница 2-го ряда кнопок line(8,155,108,155);//нижняя граница 3-го ряда кнопок line(8,190,108,190);//нижняя граница 4-го ряда кнопок line(8,225,108,225);//нижняя граница 5-го ряда кнопок
Ожидание выбора кнопки подменю
while(1){ if((ms_release(&ms,0)==1)||(ms_release(&ms,1)==1)){ x=ms.hor_pos; y=ms.ver_pos;
Вызов функции, рисующей коденсатор
condensator(x1,y1,x2,y2); cursor_on(); kn=0; break;
Вызов функции, рисующей амперметр
ampermetr(x1,y1,x2,y2); cursor_on(); kn=0; break; case 6: cursor_off();
Вызов функции, рисующей ЭДС
eds(x1,y1,x2,y2); cursor_on(); kn=0; break; case 10:
вызов функции, рисующей провод
provod(x1,y1,x2,y2); cursor_on(); kn=0; break; case 16:
Функция, рисующая конденсатор
void condensator(int x1,int y1,int x2,int y2){ int x3,y3; switch(pozition(x1,y1,x2,y2)){ case 1:
Функция, рисующая амперметр
void ampermetr(int x1,int y1,int x2,int y2){ int x3,y3; switch(pozition(x1,y1,x2,y2)){ case 1:
Функция, рисующая вольтметр
void voltmetr(int x1,int y1,int x2,int y2){ int x3,y3; switch(pozition(x1,y1,x2,y2)){ case 1:
Функция, рисующая ЭДС
void eds(int x1,int y1,int x2,int y2){ int x3,y3; switch(pozition(x1,y1,x2,y2)){ case 1:
Функция, рисующая гальванометр
void galvanometr(int x1,int y1,int x2,int y2){ int x3,y3; switch(pozition(x1,y1,x2,y2)){ case 1:
Функция, рисующая антену
void antena(int x1,int y1,int x2,int y2){ switch(pozition(x1,y1,x2,y2)){ case 1:
Редактор конструирования электрических схем
В последнее время все сильнее и сильнее компьютер становится помощником человека в его профессиональной деятельности. С помощью компьютеров выполняются сложнейшие математические расчеты, производится моделирование природных и экономических явлений. С помощью компьютеров строят сложные графические образы, проводят исследование в различных областях науки и техники. В связи с этим существует огромное количество программного обеспечения, используемое в современных Читать далее
Краткие теоретические сведения
Для начала работы с данным редактором необходимо уяснить себе некоторые основные правила, установленные государственным стандартом, необходимые для конструирования электрических схем. Основные правила конструирования электрических схем: · Все элементы электрической схемы должны располагаться друг к другу под углом 90 градусов. Допускается расположение нескольких элементов под углом 45 градусов друг к другу только в том случае, если Читать далее
Разработка структуры программы
При разработке данного программного средства был выбран структурный подход программирования. Это объясняется тем, что данный программный продукт создавался одним человеком, и требовалось создать программу, наиболее удачно отображающую весь смысл решения данной задачи. 3.1. Анализ предметной области задачи Анализируя предметную область задачи можно выделить следующие её компоненты: · Прежде всего, требуется создать наглядный пользовательский интерфейс.
Группа функций, выполняющих непосредственное рисование элемента
Rezistor = proc(int:x1,int:y1,int:x2,int:y2) returns(void); Requires x1>108, x1<630, y1>50, y1<435, x2>108, x2<630, y2>50, y2<435 Ограничения на входные данные. Элемент должен рисоваться в рабочей области экрана. Modifies x2,y2
Катушка индуктивности,
Effects На экране рисуется катушка индуктивности, от начальной точки с координатами (х1,у1) к конечной точке с координатами (х2,у2). Reostat = proc(int:x1,int:y1,int:x2,int:y2,int:x3,int:y3) returns(void); Requires x1>108, x1<630, y1>50, y1<435, x2>108, x2<630, y2>50, y2<435, x3>108, x3<630, y3>50, y3<435 Ограничения на входные данные. Элемент должен рисоваться в рабочей области экрана.
Ограничения на входные данные. Элемент должен рисоваться в рабочей области экрана
Modifies x2,y2 Изменяется вторая координата (т.е. конец рисуемого объекта) в зависимости от угла расположения рисуемого элемента к оси ох. Изменяемая координата, таким образом, придаёт элементу правильное расположение (под углом 90 или 45 градусов к оси ох).
Группа функций, дающих пользователю дополнительные возможности при редактировании уже готовой электрической схемы
Text = proc(int:x1,int:y1)returns(void); Requires x1>108, x1<630, y1>50, y1<435 Ограничения на входные данные. Текст должен находиться в рабочей области экрана.
Выбор структур данных
В данной работе используется только одна структура данных (определённая в «mouse.cpp»), испольуемая для работы с «мышью». Общий формат такой структуры выглядит так:
Разработка пользовательского интерфейса.
После запуска программы, на экране монитора появляется рабочая область редактора. Эта область состоит из набора кнопок, обладающих функциями вывода соответствующих элементов на экран, названия редактора, которое выводится в самом верху экрана, набором кнопок для работы с различными устройствами (носителями информации, принтером и т.п.) и, непосредственно, из самой рабочей области экрана (в ней после запуска программы Читать далее
Заключение
Используя язык программирования “C++”, была написана программа, позволяющая конструировать электрические схемы, используя базовый набор наиболее часто встречаемых элементов. Данный программный продукт может с успехом применяться при оформлении школьных и студенческих лабораторных работ, конструировании своих собственных электросхем, а также в других сферах деятельности.
Программа “Кулинарный редактор”
Слово “компьютер” означает “вычислитель”, т.е. устройство для вычислений. Потребность в автоматизации обработки данных, в том числе вычислений, возникла очень давно. Многие тысячи лет назад для счета использовались счетные палочки, камешки и т.д. Более 1500 лет тому назад для облегчения вычислений стали использовать счеты.
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Важной вехой в развитии программирования явилось создание и широкое распространение языка Си – языка программирования общего назначения, хорошо известного своей эффективностью, экономичностью, и переносимостью. Указанные преимущества Си обеспечивают хорошее качество разработки почти любого вида программного продукта. Использование Си в качестве инструментального языка позволяет получать быстрые и компактные программы. Во многих случаях программы, написанные на Си, Читать далее
