Бизнес идеи с нуля

Муаровые волны. Что такое муар и искажение цветов? Описание и история

Введение

В нашей стране и за рубежом ведутся широкие работы по развитию существующих и разработке новых методов экспериментального исследования напряжений и деформаций. В последние годы получил распространение новый метод экспериментального исследования деформаций и напряжений, в котором используется муаровый эффект, возникающий при наложении одной на другую достаточно мелких сеток (решеток Френеля) и состоящий в образовании картины чередующихся темных и светлых муаровых полос, которые несут информацию о топологии объекта и перемещениях. Благодаря ряду замечательных свойств муаровый эффект может быть использован в качестве основы для точного и наглядного способа измерений.

В связи с развитием вычислительной техники получил распространение электронно-проекционный муаровый метод.

Для дальнейшего развития метода необходимы исследования. Особенно требуется анализ методов обработки муаровых картин для получения более точной информации о топологии исследуемой поверхности. Для этого необходимо собирать установку в минимальном комплекте (проектор, камера, ЭВМ) и проводить ряд экспериментов. Что бы уменьшить затраты на установку и проведения экспериментов, стоит разработать программу, которая будет моделировать муаровый эффект при заданных параметрах.

При создании систем контроля использующие муаровый эффект можно проверить, какая муаровая картина будет получаться при тех или иных параметров рабочей поверхности, рабочего растра, эталонного растра, положения камеры и проектора.

Муаровый эффект

Природа муарового эффекта

Муар - это картина, состоящая из чередующихся темных и светлых полос, возникающая при наложении двух или более решеток Френеля, состоящих из линий, точек или иных геометрических элементов. В повседневной жизни его можно наблюдать в шелковых тканях, которые получили аналогичное название. Явление это обусловлено ограниченной разрешающей способностью устройства наблюдения, будь то человек или камера. При наложении двух систем линий интенсивность света по поверхности изображение меняется, и это изменение интенсивности и является причиной возникновения муаровой картины.

На рисунке 1 показаны картины муаровых полос, возникающие при наложении двух сеток прямых параллельных линий одинакового шага, повернутых на небольшой угол одна относительно другой (рисунок 1.а), а также имеющих небольшую разность в шаге, наложенных параллельно (рисунок 1.б).

Муаровый эффект

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

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

При наложении двух систем прямых параллельных линий одинакового шага, повернутых на небольшой угол одна относительно другой, середина темной муаровой полосы совпадает с тем местом, где темные линии обеих сеток накладываются одна на другую. Между линиями средняя интенсивность меняется линейно и составляет 0.5 для белой муаровой полосы и 0.0 для темной муаровой полосы при условии, что темные и светлые линии сеток имеют одинаковую ширину .

Вообще распределение интенсивности света между светлыми и темными линиями зависит от соотношения ширины светлых и темных линий сетки. Полосы наибольшего контраста, то есть наибольшей разности интенсивности света, проходящего через середины светлой и темной полос, получаются при одинаковой ширине светлых и темных линий. При любом соотношении ширины светлых и темных линий максимальная интенсивность получается в центре светлой муаровой полосы, что облегчает построение центральных линий полос при измерениях. Муаровый эффект, таким образом, есть оптическое явление, возникающее при механическом наложении сеток сравнительно крупного шага, частота которых гораздо меньше частоты световых волн. Физическая природа света (длина волны) не имеет в этом явлении особого значения, поэтому его иногда называют «механической интерференцией».

Муаровый узор

Возникновение муара при наложении двух линейных решёток.

Муа́ровый узор (муар, от фр. moiré ) - узор, возникающий при наложении двух периодических сетчатых рисунков. Явление обусловлено тем, что повторяющиеся элементы двух рисунков следуют с немного разной частотой и то накладываются друг на друга, то образуют промежутки.

Муаровый узор наблюдается при наложении друг на друга различных частей тюлевых занавесок.

Понятие «муар» происходит от ткани муар , при отделке которой использовалось данное явление.

Муаровый узор возникает при цифровом фотографировании и сканировании сетчатых и других периодических изображений, если их период близок к расстоянию между светочувствительными элементами оборудования. Этот факт используется в одном из механизмов защиты денежных знаков от подделки: на купюры наносится волнообразный рисунок, который при сканировании может покрыться очень заметным узором, отличающим подделку от оригинала.

Цифровая обработка изображений

Возникновение муара в процессе сканирования

Чаще всего в повседневной жизни муар проявляется при сканировании изображений, напечатанных полиграфическим способом. Это происходит из-за того, что сканер повторно растрирует изображение, на котором уже есть оригинальный растр . Проще это можно представить так: если взять кальку с одним орнаментом и наложить её на кальку с тем же орнаментом, но изображенным под другим углом, то результирующий орнамент будет отличаться и от первого и от второго. Если же наложить их так, чтобы они совпадали, то первый орнамент совпадет со вторым.

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

Возникновение муара в процессе растрирования

«Водолазы». Небо закрашено неровными горизонтальными линиями, и на низких разрешениях получается муар.

Муар также может возникнуть из-за неправильной установки углов между линиями основных цветов при растрировании . И то и другое является, фактически, интерференцией двух наборов линий растра. Различают несколько видов розеток муара, по виду которой часто можно выяснить причину муара.

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

Краски, влияющие на муар

Муаровая лента

При печати любым набором красок наиболее интенсивная (темная) краска, которая имеет на большой площади значение от 30 до 70 % может давать муар. То есть если у нас на CMYK фотографии черный канал не доминирует (<10-15%) то вероятность возникновения различимого глазом муара минимальна. Таким образом можно почти не обращать внимание на жёлтый канал CMYK фотографии. Угол поворота растра между самыми проблемными каналами должен быть как можно ближе к 45°.

При печати «плашками» (то есть с заполнением >95 %) понятие «угол наклона растра» практически исчезает (даже если речь идет о фотографии).

См. также

Ссылки


Wikimedia Foundation . 2010 .

Смотреть что такое "Муаровый узор" в других словарях:

    Возникновение муара при наложении двух линейных решёток. Муар на ленте ордена св. Андрея Первозванного. Муаровый узор (муар, от фр. moiré) узор, возникающий при наложении двух периодических сетчатых рисунков. Явление обусловлено тем, что… … Википедия

moire , название ткани) - узор, возникающий при наложении двух периодических сетчатых рисунков. Явление обусловлено тем, что повторяющиеся элементы двух рисунков следуют с немного разной частотой и то накладываются друг на друга, то образуют промежутки.

Муаровый узор наблюдается при наложении друг на друга различных частей тюлевых занавесок.

Понятие «муар» происходит от ткани муар ?! , при отделке которой использовалось данное явление.

Муаровый узор возникает при цифровом фотографировании и сканировании сетчатых и других периодических изображений, если их период близок к расстоянию между светочувствительными элементами оборудования. Этот факт используется в одном из механизмов защиты денежных знаков от подделки: на купюры наносится волнообразный рисунок, который при сканировании может покрыться очень заметным узором, отличающим подделку от оригинала.

Энциклопедичный YouTube

    1 / 3

    ✪ Муаровый орёл

    ✪ Серия 31. Муар - что это такое и как с ним бороться

    ✪ Мультипресс: измерение линеатуры и углов поворота растра. Муар.

    Субтитры

Цифровая обработка изображений

Возникновение муара в процессе сканирования

В повседневной жизни муар часто проявляется при сканировании изображений, напечатанных полиграфическим способом. Это происходит из-за того, что сканер повторно растрирует изображение, на котором уже есть оригинальный растр . Проще это можно представить так: если взять кальку с одним орнаментом и наложить её на кальку с тем же орнаментом, но изображенным под другим углом, то результирующий орнамент будет отличаться и от первого и от второго. Если же наложить их так, чтобы они совпадали, то первый орнамент совпадет со вторым.

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

Возникновение муара в процессе растрирования

Муар также может возникнуть из-за неправильной установки углов между линиями основных цветов при растрировании . И то и другое является, фактически, интерференцией двух наборов линий растра. Различают несколько видов розеток муара, по виду которой часто можно выяснить причину муара.

Сканирование, фактически, представляет из себя модуляцию сигналов в узлах сетки сканера яркостью узлов типографского растра. В общем виде получается произведение двух модулированных синусоид (решёток) с различным периодом пространственных колебаний. Одна

Словом «муар» или «муаре» на французском языке обозначают переливающийся узор, напоминающий застывшие волны или древесные кольца. Точно также стали называть и шелковую однотонную ткань с рельефной «муаровой» поверхностью, создающей великолепную игру света и тени. Изначально ткань муар изготавливали только из высококачественного шелка. Сегодня она может быть полушелковой и даже полностью искусственной, но продолжает оставаться такой же загадочно красивой.

Немного истории

О том, кому принадлежит честь создания муара, достоверных сведений нет. Известно лишь то, что его история тянется со средних веков, а в Европу шелковые ткани с оптическим эффектом пришли с Востока примерно четыре столетия назад. Судя по описаниям, восточный муар был двух типов: из однотонного шелка и из шелка с вплетением дополнительных серебристых или золотистых нитей, что повышало стоимость ткани в разы. Торговцы называли этот волнисто-мерцающий текстиль «объярь», от персидского «об» ― вода. Позволить себе сшить такую одежду могли только очень состоятельные люди. Сегодня ее можно встретить лишь на музейных фото.

Первой европейской страной, освоившей производство муаровой ткани, стала Франция. Французский аналог ни качеством, ни внешним видом не уступал восточному первоисточнику, успешно с ним конкурировал и уже в начале XVII века покорил не только всю Европу, но и Россию, где в начале XIX века стали ткать свой «русский» муар. Долгие годы, вплоть до начала Первой мировой войны, этот материал по праву считался одним из самых красивых, и каждая светская красавица обязательно имела в своем гардеробе хотя бы одно муаровое платье.


Виктор Шрамм (1865-1929 гг.) Перед балом.

Особенности производства

Секрет получения муарового узора заключался в том, что шелк полотняного плетения подвергают каландрированию: пропускают через нагретые стальные гравировальные цилиндры под высоким давлением (до 35 тонн). Они сплющивают уточные нити, меняя их структуру и направляя волокна в другую сторону. Благодаря такой деформации на шелковой поверхности и появляется переливающийся и неповторяющийся в своих линиях волнистый узор, напоминающий волны или кольца на косом срезе дерева.


Каландрирование шелкового полотна.

Нити для изготовления муаровых тканей окрашивают заранее. Поэтому полотна этого типа могут быть различной плотности и толщины, но всегда имеют однотонную расцветку.

Позже ткань с переливами стали изготавливать на основе не только шелка, но и многих других материалов, таких как: сатин, жаккард, бархат, органза, велюр, полиэстер. Они ткутся из волокон самого разного происхождения: шелковых, полушелковых, хлопковых, вискозных, ацетатных, а объединяет их одно ― муаровый узор на поверхности.

Различают два вида муара:

  1. Муар-антик. Отличается объемным рисунком. Его поверхность переливается на свету ярким матовым блеском за счет особой технологии сплетения нитей. Используя такую технику, можно добиться броских разводов и резких переходов от светлых тонов к темным.
  2. Громуар. Плотное шелковое полотно высокого качества с хаотичными ясно различаемыми крупными переливами, изготовленное непосредственно методом каландрирования.

Чем ярче и четче муаровый отлив, тем выше ценится ткань.


Громуар ― стопроцентная шелковая ткань высшего качества.
Муаровая скатертная ткань из 100% полиэстера.
Органза-муар для штор из 100% полиэстера.
Муаровый сатин-жаккард из смесовых волокон для пошива мужских сорочек.
Муаровая поверхность представляет собой уникальную игру цвета и света, которая зависит от того под каким углом на нее смотреть.

Из многочисленного семейства муаровых тканей особенно можно выделить бархат ― современную разновидность этого великолепного ворсового текстиля, пластичный материал, красиво струящийся в драпировках. Игра цвета, света и тени на бархатной поверхности выглядит очень эффектно. Бархат, как и любой другой муар, может быть как натуральным (хлопчатобумажным), так и синтетическим (полиэстровым). Иногда в него добавляют эластичные нити. Такая ткань хорошо тянется и идеально подходит для пошива вечерних платьев.
Бархат муар ―натуральный или искусственный материал с мелким ворсом и эффектными переливами.

Области применения муара

Несмотря на разницу в плотности и составе волокон муаровые ткани обладают рядом общих преимуществ, благодаря которым они всегда востребованы как в пошиве одежды, так и в интерьерном дизайне. К их основным достоинствам можно отнести:

  • изысканный внешний вид;
  • отличную драпируемость;
  • способность держать форму;
  • прочность и износостойкость.

Как уже говорилось выше, переливающаяся ткань настолько фактурно хороша, что не нуждается в нанесении рисунка. Ее выпускают гладкоокрашенной, используя при этом все богатство цветов и оттенков.

В XVIII-XIX вв. муар был невероятно популярен. На полотнах некоторых живописцев, творивших в те времена, его можно было увидеть везде. На них изображены дамы в муаровых платьях, отдыхающие в комнатах с окнами, украшенными переливающимися на свету портьерами, обставленными мебелью с узорчатой обивкой и обитыми бликующей тканью стенами.


Фрагмент старинного женского платья из громуара.

Сегодня область применения муара тоже очень разнообразна. Из него изготавливают:

  • домашний текстиль (портьеры, гардины, покрывала и наволочки, скатерти);
  • праздничную одежду (свадебные и вечерние платья и костюмы, женские блузы и мужские сорочки);
  • наряды в стиле поп-арт и ретро;
  • всевозможные аксессуары (клатчи, ленты, бальные туфли, галстуки);
  • обивку для нарядной мебели не повседневного использования.

Вечерний костюм от Версаче из полушелкового муар-антика.
Великолепное свадебное платье из шелка и органзы.

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

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


Неизвестный художник. Портрет фельдмаршала графа А.В. Суворова (1730 – 1800 гг.)

Еще одно применение муаровой ткани, а точнее громуара, о котором нельзя умолчать ― наградные и орденские ленты. Их имеют ордена большинства государств. Для каждой награды полагается лента определенного цвета или сочетания цветных полос.

Как ухаживать за муаровыми тканями

Чтобы муаровые изделия как можно дольше сохраняли презентабельный вид, ухаживать за ними нужно бережно:

  • дорогие шелковые вещи лучше сдавать в химчистку;
  • автоматическая стирка возможно только в деликатном режиме, при температуре 30 градусов, без отжима;
  • ацетатные и полиэстеровые шторы с муаровым узором стирают вручную, без трения и выкручивания;
  • моющие средства для стирки, следует брать самые мягкие, например биогели;
  • сушка рекомендуется на ровной поверхности в разложенном виде, вдали от отопительных приборов и яркого солнца;
  • температура глажки выбирается в соответствии с составом материи;
  • гладят изделия из муара только с изнаночной стороны;
  • смачивать муар при глажке нельзя – капли воды оставляют на его поверхности заметные пятна;
  • на таких вещах легко образуются заломы, поэтому расправлять их перед сушкой нужно как можно тщательнее;
  • образовавшиеся заломы можно осторожно расправить над паром;
  • хранят муаровый домашний текстиль аккуратно сложенным, а вещи развешанными на плечиках.

При соблюдении правильного ухода изделия из нарядного муарового текстиля будут очень долго служить без потери внешнего вида.

Ткань муар ― прекрасный способ создать праздник. Ее изысканные динамичные переливы формируют особый зрительный образ и наполняют пространство роскошью и ощущением внутренней свободы, поэтому в каждом доме или гардеробе не помешает иметь хотя бы одну муаровую вещь. Момент, когда она будет очень кстати, наступит обязательно.

[Оценивших: 3 Средняя оценка: 5]

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту

по дисциплине: «Проектирование микропроцессорных систем»

на тему: «Разработка программы, моделирующей муаровый эффект»

Задание на курсовое проектирование

Спроектировать и написать программу, моделирующую муаровый эффект, рассчитать вершины, построить исследуемую плоскость. В работе предполагается использование современного языка программирования Visual Basic 2005 и новых технологий DirectX 9.

Курсовой проект содержит 80 страниц, 13 рисунков, 4 приложения, было использовано 5 источников.

МУАР, МУАРОВЫЙ ЭФФЕКТ, СЕТКИ, РАСТР, ОПТИЧЕСКАЯ ОСЬ, МАТЕМАТИЧЕСКАЯ МОДЕЛЬ, МОДЕЛИРОВАНИЕ, ТОПОЛОГИЯ ОБЪЕКТА, АЛГОРИТМ, ПРОГРАММА, МОДУЛЬ.

Объектом исследования является модель электронно-проекционного метода определения топологии объектов.

Цель исследования: изучение и разработка программного обеспечения для моделирования электронно-проекционного метода.

В процессе исследования и разработки модели электронно-проекционного метода использовались следующие программные приложения: Visual Basic 2005, DirectX 9.0с SDK, MathCAD 13, 3D Studio Max 6.0. Была разработана программа по моделированию муарового эффекта. Были получены различные муаровые картины.

Область применения: данная разработка может быть использована в исследовании муаровых методов, демонстрации муарового эффекта, определения деформаций на различных поверхностях.

Введение 5

1 . Муаровый эффект 6

1.1 Природа муарового эффекта 6

1.2 Классификация муаровых методов 8

1.3 Муаровые методы 10

1.4 Математическая модель исследования топологии поверхностей электронно-проекционным муаровым методом 15

2 . Выбор аппаратно-программных средств разработки 19

3 . Разработка программного обеспечения для моделирования муарового эффекта 20

3.1 Основной алгоритм программы, модулирующий муаровый эффект 20

3.2 Интерфейс программы 23

Заключение 33

Список использованных источников 34

Приложение А 35

Приложение Б 63

Приложение В 80

Приложение Г 81

Введение

В нашей стране и за рубежом ведутся широкие работы по развитию существующих и разработке новых методов экспериментального исследования напряжений и деформаций. В последние годы получил распространение новый метод экспериментального исследования деформаций и напряжений, в котором используется муаровый эффект, возникающий при наложении одной на другую достаточно мелких сеток (решеток Френеля) и состоящий в образовании картины чередующихся темных и светлых муаровых полос, которые несут информацию о топологии объекта и перемещениях. Благодаря ряду замечательных свойств муаровый эффект может быть использован в качестве основы для точного и наглядного способа измерений.

В связи с развитием вычислительной техники получил распространение электронно-проекционный муаровый метод.

Для дальнейшего развития метода необходимы исследования. Особенно требуется анализ методов обработки муаровых картин для получения более точной информации о топологии исследуемой поверхности. Для этого необходимо собирать установку в минимальном комплекте (проектор, камера, ЭВМ) и проводить ряд экспериментов. Что бы уменьшить затраты на установку и проведения экспериментов, стоит разработать программу, которая будет моделировать муаровый эффект при заданных параметрах.

При создании систем контроля использующие муаровый эффект можно проверить, какая муаровая картина будет получаться при тех или иных параметров рабочей поверхности, рабочего растра, эталонного растра, положения камеры и проектора.

1. Муаровый эффект

1.1 Природа муарового эффекта

Муар - это картина, состоящая из чередующихся темных и светлых полос, возникающая при наложении двух или более решеток Френеля, состоящих из линий, точек или иных геометрических элементов. В повседневной жизни его можно наблюдать в шелковых тканях, которые получили аналогичное название. Явление это обусловлено ограниченной разрешающей способностью устройства наблюдения, будь то человек или камера. При наложении двух систем линий интенсивность света по поверхности изображение меняется, и это изменение интенсивности и является причиной возникновения муаровой картины.

На рисунке 1 показаны картины муаровых полос, возникающие при наложении двух сеток прямых параллельных линий одинакового шага, повернутых на небольшой угол одна относительно другой (рисунок 1.а), а также имеющих небольшую разность в шаге, наложенных параллельно (рисунок 1.б).

Муаровый эффект

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

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

При наложении двух систем прямых параллельных линий одинакового шага, повернутых на небольшой угол одна относительно другой, середина темной муаровой полосы совпадает с тем местом, где темные линии обеих сеток накладываются одна на другую. Между линиями средняя интенсивность меняется линейно и составляет 0.5 для белой муаровой полосы и 0.0 для темной муаровой полосы при условии, что темные и светлые линии сеток имеют одинаковую ширину .

Вообще распределение интенсивности света между светлыми и темными линиями зависит от соотношения ширины светлых и темных линий сетки. Полосы наибольшего контраста, то есть наибольшей разности интенсивности света, проходящего через середины светлой и темной полос, получаются при одинаковой ширине светлых и темных линий. При любом соотношении ширины светлых и темных линий максимальная интенсивность получается в центре светлой муаровой полосы, что облегчает построение центральных линий полос при измерениях. Муаровый эффект, таким образом, есть оптическое явление, возникающее при механическом наложении сеток сравнительно крупного шага, частота которых гораздо меньше частоты световых волн. Физическая природа света (длина волны) не имеет в этом явлении особого значения, поэтому его иногда называют «механической интерференцией».

1.2 Классификация муаровых методов

Муаровый эффект может быть использован при исследовании перемещений и деформаций сложных механизмов и конструкций. В частности, на использовании этого эффекта основаны некоторые очень точные и чувствительные приборы для измерения деформаций (механические тензометры, использующие муаровый эффект). Однако больший интерес представляет получение топологии поверхностей, на основе которых возможно получение поля деформаций по поверхности исследуемого объекта. Здесь муаровый эффект позволяет создать по существу новый метод исследования деформаций, существенно дополняющий имеющиеся экспериментальные методы. Известно несколько методов муаровых полос, применяемых к исследованию перемещений и деформаций, различающихся видом сеток, используемых для образования картин муаровых полос, и характером решаемых задач.

Сетка наносится непосредственно на исследуемую поверхность детали.

Нанесенная на экране сетка отражается от зеркальной поверхности исследуемого объекта.

Сетка с помощью проекционного устройства проектируется на поверхность исследуемого объекта.

Муаровая картина получается с помощью сетки, наложенной на поверхность исследуемого объекта, и теней или отражений этой сетки, в этом случае исследуется профиль поверхности.

В качестве сеток используются семейства линий оптической интерференции.

Используется изображение сетки, искаженное в результате преломления при прохождении света через прозрачную исследуемую деталь.

Необходимо отметить, что если первые два метода получили уже широкое применение, то остальные имеют пока незначительное распространение.

Все перечисленные выше методы исследования деформаций имеют много общего, поэтому их можно рассматривать как разновидности метода муаровых полос. Общим для них, прежде всего, является использование картин муаровых полос, возникающих в результате механического наложения систем сеток. Наиболее удобным вариантом являются проецируемые сетки. Искажение (деформация) одной (или обеих) из налагаемых сеток связано с деформациями исследуемой поверхности. Возникающие муаровые полосы являются линиями уровня некоторых геометрических величин (перемещений, углов наклона, прогибов, кривизны и так далее, или их комбинаций). Исследуемая величина оказывается заданной в виде картины своих линий уровня. Вдоль линий уровня она остается постоянной, а при переходе от одной муаровой полосы к соседней изменяется на некоторую постоянную величину.

Все операции, связанные с обработкой муаровых картин являются общими для всех методов, а именно:

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

методы построения графиков изменения функций в различных направлениях;

способы графического или численного дифференцирования и интегрирования функций;

способ определения частных производных путем наложения со сдвигом в направлении дифференцирования изображений линий уровня функции (механическое дифференцирование);

способ получения производных по параметру нагружения или времени, состоящий в наложении картин линий уровня, соответствующих началу и концу этапа нагружения или интервала времени.

Общими для всех указанных выше методов являются экспериментальные способы получения картин муаровых полос:

двукратное фотографирование сетки до и после деформирования;

фотографирование картины муаровых полос, наблюдаемой непосредственно в процессе эксперимента путем наложения эталонной сетки или на поверхности детали, или на матовое стекло фотоаппарата;

полученные картины муаровых полос после проведения эксперимента путем наложения;

электронная обработка.

Много общего имеет метод муаровых полос с поляризационно-оптическим методом. Методика обработки картин полос, определения порядка полос и вычисления по порядкам полос тех или иных величин в этих методах вполне аналогичны. Однако при обработке картин муаровых полос пока используется лишь дискретная информация, представляемая средними линиями полос. В методе муара картины полос содержат и непрерывную информацию, то есть в любой точке поля интенсивность света определенным образом связана с измеряемыми функциями. В последние годы предпринята попытка установления такой зависимости, и для измерения интенсивности света в промежутках между серединами светлых и темных муаровых полос могут быть использованы специальные приборы.

1.3 Муаровые методы

А) Метод муаровых полос с использованием сетки, нанесенной на деталь. Сущность метода состоит в том, что сетка линий наносится непосредственно на поверхность исследуемой детали и деформируется вместе с поверхностью. При наложении изображений сеток до и после деформации возникает картина муаровых полос. Наложение осуществляется или фотографированием деформированной сетки через недеформированную «эталонную» сетку, нанесенную на прозрачную пластинку и наложенную на поверхность детали, или фотографированием сетки, нанесенной на поверхность детали до и после деформации на один и тот же или на различные негативы. При этом можно использовать как отраженный, так и проходящий (в случае прозрачной детали) свет. Вообще говоря, могут быть использованы различные семейства линий, нанесенные на поверхность деталей сложной формы. Однако наиболее просто определяются деформации плоских поверхностей, на которые нанесены сетки прямых параллельных линий. Этот случай представляет наибольший практический интерес.

Данная разновидность метода является наиболее универсальной, и получила наиболее широкое распространение за рубежом, в то время как в отечественной литературе она освещена пока недостаточно. Впервые исследование деформаций этим методом осуществлено, по-видимому, Веллером и Шеппардом в 1948 году. Начиная с этого времени, в основном за последнее десятилетие опубликовано значительное число работ, в которых излагаются различные подходы к анализу муаровых картин и различные применения метода.

Б) Метод муаровых полос с использованием отраженной сетки. Если нанести на экран сетку прямых параллельных линий и сфотографировать отражение этой сетки сначала от плоской зеркальной поверхности, а затем от искривленной на один и тот же негатив, то в результате наложения двух семейств отраженных линий образуется картина муаровых полос, по которой можно судить о характере искривления поверхности. Графическим или численным интегрированием углов можно определить профиль поверхности (то есть расстояния по вертикали между различными точками поверхности или точками поверхности и некоторой отсчетной плоскостью). Метод позволяет определять углы поворота нормали, кривизны и профили слабоизогнутых поверхностей.

Как известно, кривизны срединной поверхности пластины вполне определяют ее деформированное и напряженное состояние. Поэтому данный метод получил распространение для исследования изгиба пластин.

Этот метод является естественным развитием зеркально-оптических методов исследования углов и метода отраженной сетки. Зеркально-оптический метод точного измерения углов известен очень давно. При повороте плоского зеркала на небольшой угол, выбрав соответствующий «оптический рычаг» (расстояние от зеркала до некоторой отсчетной шкалы, по которой перемещается отраженный от зеркала луч) и измерив перемещение отраженного луча, можно определить величину угла поворота зеркала практически с любой требуемой точностью. Этот принцип используется как для непосредственного измерения углов, так и в различных измерительных приборах, например, зеркально-оптическом тензометре.

В) Метод муаровых полос с использованием отражения спроецированной сетки. Аналогично предыдущему методу муаровые картины могут быть. Получены наложением отраженной сетки, проектируемой на поверхность исследуемой детали с помощью проекционного аппарата. Однако эта разновидность получила пока значительно меньшее распространение, чем предыдущие методы.

Сетка проецируется с помощью проектора на поверхность исследуемой детали и отражается от нее на экран, покрытый светочувствительной фотобумагой. Наложенные отражения сетки до и после нагружения детали образуют картину муаровых полос, которые, как и в методе Лигтенберга (схемы различаются лишь направлением хода лучей), являются линиями уровня углов поворота нормали к исследуемой поверхности. Данный метод так же, как и предыдущий, применим для исследования изгиба пластин и изогнутых поверхностей, и формулы для подсчета углов, кривизны и прогибов поверхности по картинам муаровых полос совершенно аналогичны.

Более удобный метод описан Теокарисом. Сетка на исследуемую поверхность проецируется параллельным пучком монохроматического света под углом поверхности, и появляется возможность фотографировать отражение сетки. Муаровые полосы представляют собой также линии уровня углов поворота нормали в направлении, перпендикулярном к направлению линий сетки.

Г) Электронно-проекционный метод. Рассмотренные методы получения муарового эффекта приведены здесь в обзорном порядке. В сущности, они похожи и обрабатываются с использованием одной и той же математической модели, однако применяются, как уже было сказано выше, в разных эксплуатационных условиях.

Электронно-проекционный метод имеет ряд преимуществ перед уже рассмотренными методами и состоит в следующем: рабочая сетка проецируется на объект проектором, далее она сканируется камерой и обрабатывается с помощью ЭВМ. Это наиболее общее описание метода. Ранее для его реализации предполагалось использование аналоговой техники проектора и камеры, но на современном этапе развития технических средств, с появлением мультимедийных проекторов и цифровых камер, применение которых позволяет повысить точность получаемых результатов и легко интегрировать их в единую систему, возникла необходимость пересмотреть математическую модель. Рассмотрим подробнее схему электронно-проекционного способа определения топологии поверхностей на основе использования цифровой.

Минимально необходимый набор компонентов системы включает компьютер, мультимедийный проектор и цифровую фотокамеру. Для осуществления масштабного сканирования поверхности к системе необходимо добавить элементы, обеспечивающие ей мобильность, но в рамках данной работы главным образом будет рассмотрен минимальный набор. Функциональная схема такой системы представлена на рисунке 3.

Функциональная схема

Цифрами обозначены следующие элементы системы:

Исследуемая поверхность;

Цифровая фотокамера;

Мультимедийный проектор;

Компьютер.

ЭВМ синтезирует решетку с заданными параметрами, после чего подготовленная сетка проецируется на объект мультимедийным проектором

Далее, изображение на объекте фотографируется цифровой камерой и передастся в компьютер, где сначала происходит первичная обработка изображения приведение его к монохромному виду. Синтез мнимого растра на основе параметров отснятого объектного. Вычленение центров светлых полос объектного растра и центров темных полос мнимого растра, их наложение и определение муаровой картины.

Заключительным этапом обработки является расчет высот, расстояний от плоскости мнимого растра до соответствующих точек поверхности объекта.

Таким образом; получаем дискретную картину топологии поверхности.

Следует еще раз отметить, что данная система на любом этапе работает с дискретными значениями, а используемые растры рабочий и мнимый по сути виртуальны. Это немаловажная деталь при разработке математической модели.

1.4 Математическая модель исследования топологии поверхностей электронно-проекционным муаровым методом

Перейдем к описанию математической стороны метода.

Информация, заключенная в растрах, является виртуальной - это положение означает то, что параметрами растров является их емкость, т.е. количество пикселей - такие понятия, как физические размеры в данной модели бессмысленны. Так, отображаемый пиксель приобретает физические размеры только в результате проецирования, что является характеристикой проектора, но никак не растра. Аналогично принятый камерой растр отображается в поле пикселей так же не имеющих физических размеров.

Информация представляется в дискретном виде - это положение говорит о том, что физически можно определять границы проецируемых полос со сколь угодной точностью, но при обработке их в цифровом формате они однозначно принимают одно из двух значений с заданной дискретностью, что опять же определяется разрешающей способностью камеры.

Таким образом, главной задачей математической модели является преобразование виртуальной матрицы данных в информацию о физическом объекте. Оптическая схема, поясняющая электронно-проекционный муаровый метод, представлена на рисунке 3.

Оптическая модель

На поверхность объекта проецируется матрица рабочего растра. Вынесенная на расстояние r камера совмещена оптической осью с осью проектора в точке O, принадлежащей поверхности объекта исследования. При этом камера имеет наклон б по отношению к креплению. Картина полос на объекте преобразуется цифровой камерой в матрицу пикселей рабочего растра. В компьютере, на основе информации о толщине полос рабочего растра и избранного расстояния d от точки O до плоскости мнимого растра, генерируется сам мнимый растр. Далее, центры светлых полос проектного растра и центры темных полос мнимого растра совмещаются на предмет совпадения. Точки, где имеет место такое совпадение это точки центров мировых полос.

Рассмотрим, как формируются координаты точек центров темных мнимого растра в зависимости от параметров r, б, d и шага полос рабочего растра s.

Определим угол в как угол между оптическими осями проектора и камеры. Тогда в = 90° - б.

Координаты центров:

При расчете координат используется значение функции масштаба для изображения, даваемого проектором. Предполагается, что разрешения проектора и камеры совпадают. Функция Q имеет линейный характер и проецируемая картина изменяет свои физические размеры в зависимости от расстояния до плоскости проецирования линейно.

После обработки объектного растра мы получаем значения центров светлых полос и для извлечения информации о топологии поверхности, сравниваем координаты центров полос мнимого растра и объектного. В этих точках интенсивность света равна нулю - это и есть центры муаровых полос. Значения высот вычисляются по формуле:

Таким образом, получена законченная математическая модель определения топологии поверхностей электронно-проекционным муаровым методом.

2. Выбор аппаратно-программных средств разработки

Сейчас доступно множество средств разработки приложений по моделированию, выбор встал на следующем программном обеспечение:

Новые технологии позволяют использовать модули, написанные на разных языках программирования, в одной программе. Эту технологию поддерживает Microsoft Visual Studio .NET 2005 в состав которой входит Visual Basic 2005. VB 2005 - язык программирования высокого уровня, отвечает всем требованиям безопасности приложений, современный, легко изменяемый код, объектно-ориентированное программирование и работа с 3D_приложениями дает новые возможности по созданию высокотехничных приложений.

Средство 3D-моделирования DirectX 9.0c, использует современные наработки, обеспечивает связь между средством программирования и драйвером видеокарты. Компонент Direct3D обеспечивает широкие возможности при построении 3Д пространство.

Пакет Microsoft .Net Framework необходим для корректного функционирования программ написанных на VB 2005 или выше. Включает в себя ряд компонентов, таких как компиляторов, программ тестирования и защиты приложений.

Для быстрой и надежной работы выбранного программного обеспечения необходим современный компьютер. Требования к аппаратной части:

Системный блок со следующими характеристиками:

Процессор Intel Pentium IV 2.0ГГц

Оперативной памяти 256Мб

Свободное место на жестком диске 100Мб

Видеокарта NVidia GeforceFX5200 128Мб с поддержкой DirectX9.0

Монитор с поддержкой расширения не меньше чем 800x600x24

3. Разработка программного обеспечения для моделирования муарового эффекта

Проект разработан в Visual Basic 7.0 . Программное обеспечение для гибкости состоит из трех модулей:

model - модуль графического интерфейса и управления, расчета;

rendering - модуль, работающий с 3Д миром;

bmpbrowser - модуль для отображения растровых данных.

Основная программа находится в модуле model. Это позволяет менять, другие модули не затрагивая основной, а так же упрощает добавление новых функций, изменение старых, настройки программы. В модуль model можно легко добавить новые возможности, пункты в меню и функциональные элементы, соответствующие данному пункту. А так же возможность создания других модулей.

3.1 Основной алгоритм программы, модулирующий муаровый эффект

Последовательность действий:

Создаем рабочий растр с заданным углом поворота вокруг центра растра и шагом линий. Этот пункт выполняется вызовом функций CreatLine(ByVal TResol As Byte, ByRef Mas2D(,) As Byte, ByVal Stp As Integer, ByVal Pix4 As Integer, ByVal Alpha As Single), где:

TResol - выбор разрешающей способности, соответствует элементам массивов fWidth() и fHeight(), текущее разрешение хранится в нулевой ячейке;

Mas2D(,) - двухмерный выходной массив, объектный растр;

Stp - шаг растра;

Pix4 - длина шаг черных полос, в текущем проекте Pix4 = Stp/2;

Alpha - угол поворота задается в градусах.

Затем данные из массива сохраняется в bmp-файле с помощью процедуры SaveToFile(ByVal TResol As Byte, ByVal Mas2D(,) As Byte, ByVal FName As String), где:

Tresol - выбор разрешающей способности;

Fname - переменная содержащая имя файла, в который необходимо сохранить.

Накладываем его на объект с позиции проектора. Перед этим используя процедуру Camera() получаем растр с учетом искажений. Процедура имеет следующие параметры Camera(ByVal TResol As Byte, ByVal Mas2D(,) As Byte, ByRef MasCam(,) As Byte, ByVal h As Integer), где:

Mas2D(,) - двухмерный массив, является входным параметром, объектный растр;

MasCam(,) - двухмерный массив, является выходным параметром, растр с учетом искажений;

h - расстояние от проектора до поверхности.

Так же данные из MasCam(,) сохраняются в bmp-файл, процедурой SaveToFile(). После чего переменную NewRast устанавливаем в положение True, это означает, что модуль rendering должен принять новый рабочий растр и наложить его на объект(поверхность). Поверхность создается, процедурой CreateVertexBuffer(ByVal sender As Object), где sender - это объект VertexBuffer(набор вершин примитивов).

“Снимаем” камерой образовавшиеся линии. Для этого передаем управление модулю rendering, с помощью переменной createcameraview = True. Модуль rendering устанавливает вид с позиции камеры и, используя соответствующую команду Direct3D.SurfaceLoader.Save(), сохраняем содержимое слоя (видимая часть) в файл с расширением bmp.

Создаем мнимый растр с заданным углом, шагом и “снятие” его на камеру в плоскости перпендикулярной оптической оси проектора. Этот пункт аналогичен первому этапу, только входные и выходные данные относятся к мнимому растру. После создания файла с мнимым растром необходимо передать модулю rendering необходимость смоделировать его, это делается с помощью переменных createcameraviewM=True и операций аналогичных пункту 3. Результат получаем bmp-файл с эталонным растром.

Получения муаровой картины (наложением). Для этого необходимо загрузить с помощью процедуры LoadFromFile(ByVal TResol As Byte, ByVal FName As String, ByRef MasOut(,) As Byte), где:

FName - содержит имя файла с которого необходимо загрузить данные;

MasOut() - двухмерный выходной массив, данные.

Загрузили картины получившиеся в пункте 3 и 4 в соответствующие массивы. После чего необходимо передать данные процедуре Myar(ByVal TResol As Integer, ByVal MasIn1(,) As Byte, ByVal MasIn2(,) As Byte, ByRef MasOut(,) As Byte), где:

MasIn1(,), MasIn2(,) - двухмерные входные массивы, соответственно загруженным картинам;

MasOut(,) - двухмерный выходной массив содержащий картину совмещенных линий - муар.

Эта процедура попиксельно сканирует обе картины и результирует в выходной массив. После получения муара, его сохраняем с помощью процедуры SaveToFile(), описанной выше.

Обработка изображения (поиск центров линий). Необходимо обработать картины полученные в пунктах 3 и 4. Так же как и в пункте 5 необходимо с начало загрузить данные из файлов с помощью функции LoadFromFile(). Затем используя процедуру поиска линий CenterLine (ByVal TResol As Byte, ByVal MasIn(,) As Byte, ByRef MasOut(,) As Byte, ByVal Alpha As Integer), где:

MasIn(,), MasOut(,) - двухмерные массивы данных вход / выход соответственно;

Alpha(,) - угол наклона растра, задается для определения метода поиска центров полос.

Вычисляем высоты исследуемой поверхности.

3.2 Интерфейс программы

Рассмотри интерфейс модуля model. При запуске программы мы увидим два окна, показаны на рисунке 4. Справа блок управления, слева окно отображения 3D мира. На странице «1.Общие» можно менять расширения для окна 3D_моделирования и растров - чем больше, тем точнее картинка.

Вкладка «1.Общие»

Так же имеется функция перерасчета всех пунктов программы. Регуляторы нужны для изменения позиции наблюдения. Переходим на следующую вкладку.

На вкладке «2.Проектор и растр» можно выбрать исследуемую поверхность (один из семи вариантов: шар, плоскость, конус, цилиндр, пользовательский файл, синусоида).

Вкладка «2.Проектор и растр»

Далее надо ввести параметры рабочего растра, такие как шаг полос, угол поворота вокруг центра, расстояние от проектора до плоскости. После нажатия на кнопку «Создать» программа синтезирует рабочий растр с заданными параметрами, корректирует его с учетом искажений из-за расходящихся лучей проектора, накладывает растр на объект. Получаем следующий вид (рисунок 5). Далее необходимо “сфотографировать” поверхность с проецированными линиями.

Вкладка «3.Камера»

На вкладке «3.Камера», перед тем как сделать снимок, необходимо установить камеру в нужное место, это делается тремя регуляторами соответственно координатам в пространстве X,Y,Z. После нажатия на кнопку «Сделать снимок» программа создает вид с заданной позиции. Получаем картину вид спереди на рисунке 6.

Следующий этап создание мнимого растра, вкладка «4.Мнимый растр». Так же как и для рабочего растра задаем параметры мнимого растра, такие как шаг растра, угол поворота вокруг центра. После нажатия на кнопку «Создать» программа синтезирует растр с заданными параметрами. Справа на рисунке 7 показан пример.

Вкладка «4.Мнимый растр»

Вкладка «5.ПК»

Для вычислений высот необходимо нажать оставшиеся три кнопки: «центр полос изображения», «центр полос мнимого растра», «Муар центр полос».

На вкладке «Создание поверхности» производится создание файла с пользовательскими настройками поверхности (рисунок 9).

Вкладка «Создание поверхности»

Для просмотра полученных картин необходимо запустить BMP Браузер соответствующей кнопкой.

После запуска BMP Браузера, слева выбирается необходимый ресурс, например можно посмотреть исходный рабочий растр (рисунок 10) или мнимый (рисунок 11).

Рабочий растр

Для облегчения операций обработки изображения муара переводится в режим оттенки черного. Муаровый эффект изображен на рисунке 12. Он получился в результате наложения мнимого растра на рисунке 10 на снимок исследуемой плоскости на рисунке 6.

программа муаровый эффект изображение

Мнимый растр

Для вычисления центров полос найдем центры светлых полос снимка и мнимого растра. Получим рисунки 13.а и 13.б. Совместив их, получим муар центров линий на рисунке 13.в.

Муаровый эффект

Картины центров полос инвертирование

Заключение

В данном курсовом проекте был разработан алгоритм, который был реализован в программе моделирующий муаровый эффект. Проект был разработан на системе Pentium IV, 512Мб ОЗУ и видеокартой с поддержкой DX9.

Был разработан удобный программный интерфейс.

В программе были реализованы следующие функции - менять параметры объектного растра, проецировать растр на заданную поверхность, синтезировать мнимый растр; менять положение камеры и проектора в пространстве; производить первичную обработку линии сеток, моделировать муаровый эффект, расчет вершин.

Программа получилась много функциональной и гибкой, минимальные вмешательства могут кардинально преобразить продукт. Некоторые алгоритмы функционирования программы можно улучшить, например поиск центров полос, это может повысить точность измерения.

Программа требует основательной доработки подпрограммы вычисления вершин.

Список использованных источников

Кузяков О.Н., Кучерюк В.И. Методы и средства измерения топологий поверхностей, перемещений и деформаций. - Тюмень: ТюмГНГУ,2002.-172с.

Основы 3D - http://softs.h10.ru

Microsoft Visual Basic 2005 - http://www.microsoft.com

Microsoft DirectX 9 SDK - http://www.microsoft.com

Microsoft Visual Studio .NET SDK - http://www.microsoft.com

Приложение А

Листинг модуля «Options.vb»

Imports System.Windows.Forms

Public Class Options

Inherits System.Windows.Forms.Form

Public Resel As Boolean = True

"Определяет было ли изменение вида поверхности

Public statW As String = "Show"

Переменная статуса окна 3d моделирования

Public savef As Boolean = False

Параметр сохранения окна 3d моделирования в файл

Public createcameraviewA As Byte = 0

Переменная создания кадров в автоматическом режиме

Public createcameraview As Boolean = False

Переменная создания кадра рабочей поверхности и сохранение в файл

Public createcameraviewM As Boolean = False

"Переменная создания кадра мнимой поверхности и сохранение в файл

Public refreshwindow As Boolean = False

Переменная состояния обновить окна 3d моделирования

Public MRast As Boolean = False

Переменная состояния обработки мнимого растра

Public NewRast As Boolean = False

Переменная состояния обработки рабочего растра

Public NewResolution As Boolean = False

Переменная состояния новое расширение

Public Face As Integer "Номер поверхности

Public UserSur(1280 - 1, 960 - 1) As Int32 "массив пользовательской поверхности

Public SurSize As New RecSize "размер пользовательской поверхности

Public Mas(1280, 960) As Byte "рабочий растр

Public MasM(1280 - 1, 960 - 1) As Byte "мнимый растр

Public Mas2(1280 - 1, 960 - 1) As Byte "вид с проектора

Public Mas3(1280 - 1, 960 - 1) As Byte "центры полос

Public Mas4(1280 - 1, 960 - 1) As Byte "центры полос мнимой поверхности

Public MasC(1280 - 1, 960 - 1) As Byte "Вид от камеры

Public MasCM(1280 - 1, 960 - 1) As Byte "Вид от камеры м-растр

Public MasMyar(1280 - 1, 960 - 1) As Byte "Вид муара

Public MasMyarC(1280 - 1, 960 - 1) As Byte "Вид муар. центр линий

Public fWidth() As Integer = {400, 400, 640, 800, 1024, 1280} "Поддерживаемые разрешения по X

Public fHeight() As Integer = {300, 300, 480, 600, 768, 960} "Поддерживаемые разрешения по Y

Public fSize() As Single = {1, 1.6, 2, 2.56, 3.2}

Коэфициент маштабирования в зависимости от разрешения

Public SomeChange As Boolean = False "Переменная состояния "что-то изменено"

Const FType As Int16 = &H4D42 "Константа BM - объевления тип файла BMP

Const XpM As Int32 = 10000

Const YpM As Int32 = 10000

Const bitperpix As Byte = 24

Const Rez As Int16 = 0

Const Off As Int32 = &H36

Const HSize As Int32 = &H28

Const planes As Int16 = 1

Const Compr As Int32 = 0

Const ISize As Int32 = 0

Const CUsed As Int32 = 0

Const CImp As Int32 = 0

Const R1 As Byte = &HFF

Const G1 As Byte = &HFF

Const B1 As Byte = &HFF

Const R2 As Byte = 0

Const G2 As Byte = 0

Const B2 As Byte = 0

Const RR As Byte = &H0

"Все константы нужны для работы с файлами формата BMP

"Процедура создания растра с углом Alpha, шагом Stp, результат сохраняет в Mas2D(,)

Sub CreatLine(ByVal TResol As Byte, ByRef Mas2D(,) As Byte, ByVal Stp As Integer, ByVal Pix4 As Integer, ByVal Alpha As Single)

Dim yc As Integer = maxy \ 2

Dim freevarible As Single

ProgressBar1.Maximum = maxy "Показывать индикацию прогресса

"узнается, где находилась эта точка до вращения и затем

"определяется темная/светлая полоса

For ay = 0 To maxy - 1

For ax = 0 To maxx - 1

freevarible = yc + (ax - xc) * Math.Sin(-1 * Alpha / 180 * Math.PI) + (ay - yc) * Math.Cos(-1 * Alpha / 180 * Math.PI)

If Math.Abs((freevarible + yc + Pix4 \ 2) Mod Stp) >= Pix4 Then Mas2D(ax, ay) = &HFF Else Mas2D(ax, ay) = &H0

ProgressBar1.Value = ay

ProgressBar1.Value = 0

"Процедура генерации поверхностей

Function Telo(ByVal axisX As Integer, ByVal axisY As Integer) As Single

Dim fs As Single = fSize(CB_Res.SelectedIndex)

"определяется ф-я маштабирования в зависимости от выбранного расширения

Dim axisZ As Single

Dim t1 As Single

axisZ = 0 плоскость

If (Face = 1) Then цилиндр1

If (axisX > -50 * fs) And (axisX < 50 * fs) Then

axisZ = Math.Sqrt((50 * fs) ^ 2 - axisX ^ 2)

If (Face = 2) Then цилиндр2

If (axisX > -100 * fs) And (axisX < 100 * fs) Then

axisZ = Math.Sqrt((100 * fs) ^ 2 - axisX ^ 2)

If (Face = 3) Then конус

axisZ = (100 * fs - Math.Sqrt(axisY ^ 2 + axisX ^ 2)) * 2

If axisZ < 0 Then

If (Face = 4) Then шар

t1 = (100 * fs) ^ 2 - axisY ^ 2 - axisX ^ 2

If t1 >= 0 Then

axisZ = Math.Sqrt(t1)

If (Face = 5) Then new

t1 = axisY ^ 2 + axisX ^ 2

If (t1 < (20 * fs) ^ 2) Then

If (t1 > (20 * fs) ^ 2) And (t1 < (100 * fs) ^ 2) Then

axisZ = -Math.Sqrt(0.25 * t1 - (10 * fs) ^ 2) + 100

If (Face = 6) Then

Dim OffX As Integer = SurSize.X / 2

Dim OffY As Integer = SurSize.Y / 2

If (Math.Abs(axisX) <= OffX) And (Math.Abs(axisY) <= OffY) Then

axisZ = UserSur(axisX + OffX, axisY + OffY)

If (Face = 7) Then

Dim amp As Byte = NUDSyn.Value

axisZ = amp * Math.Cos(axisX * Math.PI / 50) + amp

Return axisZ возращает значение высоты

"Процедура расчета искажений

Sub Camera(ByVal TResol As Byte, ByVal Mas2D(,) As Byte, ByRef MasCam(,) As Byte, ByVal h As Integer)

Dim maxx As Integer = fWidth(TResol) "разрешение по X и У

Dim maxy As Integer = fHeight(TResol)

Dim xc As Integer = maxx \ 2 "центр X и Y

Dim yc As Integer = maxy \ 2

Dim ax, ay As Int16 "свободные переменные

Dim x1, y1 As Integer

Dim freevarible, az, thaz As Single

"Цикл создания растра, производится сканирование по X и Y

"узнается, где должна находиться эта точка, затем, где она находится

For ay = 0 To maxy - 1

For ax = 0 To maxx - 1

az = Telo(ax - xc, ay - yc)

If thaz = 0 Then thaz = -0.000000000000001

x1 = ((ax - xc) * h) / thaz + xc

y1 = ((ay - yc) * h) / thaz + yc

If (x1 < fWidth(0)) And (y1 < fHeight(0)) And (x1 >= 0) And (y1 >= 0) Then

MasCam(ax, ay) = Mas2D(x1, y1)

Else: MasCam(ax, ay) = 0

ProgressBar1.Value = ay

ProgressBar1.Value = 0

"Процедура сохранения двух мерного массива Mas2D в файл с именем FName

Sub SaveToFile(ByVal TResol As Byte, ByVal Mas2D(,) As Byte, ByVal FName As String)

Dim FSize As Int32 = fWidth(TResol) * fHeight(TResol) * (bitperpix / 8) + Off

размер файла

Dim BitCount As Int16 = bitperpix количество бит на цвет

Dim fs As IO.FileStream = New IO.FileStream(FName, IO.FileMode.Create)

создание файла

Dim w As IO.BinaryWriter = New IO.BinaryWriter(fs)

открытие файла на запись

"Запись заголовка

w.Write(FType) "Тип файла

w.Write(FSize) "Размер

w.Write(Off) "Смещение

w.Write(HSize) "Размер заголовка

w.Write(fWidth(TResol)) "Расширение по X

w.Write(fHeight(TResol)) по Y

w.Write(planes) число битовых плоскостей

w.Write(BitCount) "число битов на пиксель

w.Write(Compr) "способ упаковки 0 - отсутствует

w.Write(ISize) "размер изображения

w.Write(XpM) "количества точек на метр

w.Write(YpM) "количества точек на метр

w.Write(CUsed) "количества цветов использовано

w.Write(CImp) "количества цветов нужно

Запись данных из массива в файл

Dim ax, ay As Int16

Dim i As Integer

ProgressBar1.Maximum = fHeight(TResol)

For ay = fHeight(TResol) - 1 To 0 Step -1

w.Write(Mas2D(ax, ay)) "R

w.Write(Mas2D(ax, ay)) "G

w.Write(Mas2D(ax, ay)) "B

ProgressBar1.Value = ay

ProgressBar1.Value = 0

w.Close() закрытие файла.

Процедура загрузки данных из BMP файла в массив.

Sub LoadFromFile(ByVal TResol As Byte, ByVal FName As String, ByRef MasOut(,) As Byte)

Dim fs As IO.FileStream = New IO.FileStream(FName, IO.FileMode.Open)

открытие файла

Dim r As IO.BinaryReader = New IO.BinaryReader(fs)

установка на чтение

r.BaseStream.Seek(&HA, IO.SeekOrigin.Begin)

Dim beginData As Int32

beginData = r.ReadInt32() чтение где начало данных

r.BaseStream.Seek(&H12, IO.SeekOrigin.Begin)

Dim MaxX, MaxY As Int32

MaxX = r.ReadInt32() чтение разрешение по X

MaxY = r.ReadInt32() по Y

r.BaseStream.Seek(&H1C, IO.SeekOrigin.Begin)

Dim BperP As Byte

BperP = r.ReadByte чтение количество bit на точку

Dim MasTemp(MaxX, MaxY) As Byte "Создание временного массива

ClearMas(0, MasTemp) очистка массива

Dim b1, b2, b3, b4 As Integer

r.BaseStream.Seek(beginData, IO.SeekOrigin.Begin) переход на начало данных

"Чтение данных в массив

Dim x, y As Integer

For y = MaxY - 1 To 0 Step -1

For x = 0 To MaxX - 1

If BperP >= 16 Then b2 = r.ReadByte

If BperP >= 24 Then b3 = r.ReadByte

If BperP >= 32 Then b4 = r.ReadByte

MasTemp(x, y) = b1

первичная обработка данных

Dim lx, ly As Integer

lx = (MaxX - fWidth(TResol)) \ 2

ly = (MaxY - fHeight(TResol)) \ 2

For x = 0 To fWidth(TResol) - 1

For y = 0 To fHeight(TResol) - 1

MasOut(x, y) = MasTemp(lx + x, ly + y)

r.Close() закрытие файла

"Процеду выделения центров линий

Sub CenterLine(ByVal TResol As Byte, ByVal MasIn(,) As Byte, ByRef MasOut(,) As Byte, ByVal Alpha As Integer)

Dim ax, ay As Int16

Dim i As Integer

Dim ly As Integer

Dim Line As Boolean

Dim notdel As Boolean

Dim t As Integer

"Обнуление массива

For ax = 0 To fWidth(TResol) - 1

MasOut(ax, ay) = 0

Если угол меньше 45 градусов то сканировать по Y

If Alpha <= 45 Then

For ax = 0 To fWidth(TResol) - 1

For ay = 0 To fHeight(TResol) - 1

If (MasIn(ax, ay) >

ElseIf (MasIn(ax, ay) <= 100) And (Line = True) Then "=0

Если угол больше 45 градусов то сканировать по X

For ay = 0 To fHeight(TResol) - 1

For ax = 0 To fWidth(TResol) - 1

If (MasIn(ax, ay) >= 200) And (Line = False) Then =1

ElseIf (MasIn(ax, ay) <= 100) And (Line = True) Then "=0

MasOut(ax, (ly + ay) \ 2) = &HFF

"Процедура очистки массива

Sub ClearMas(ByVal TResol As Integer, ByRef Mas(,) As Byte)

Dim ax, ay As Integer

For ax = 0 To fWidth(0) - 1

For ay = 0 To fHeight(0) - 1

MasC(ax, ay) = 0

"Процедура создания мнимого растра

Sub CreatMRast()

LStatus.Text = "Создание м-растра"

ClearMas(0, MasM)

CreatLine(0, MasM, NumericUpDownMRS.Value, NumericUpDownMRS.Value - NumericUpDownMRS1.Value, NumericUpDownMRA.Value)

NumericUpDownMRS.Value шаг сетки

NumericUpDownMRS1.Value ширина темных полос

NumericUpDownMRA.Value угол поворота;

SaveToFile(0, MasM, ".\Мнимый растр.bmp")

"Процедура получения муара

Sub Myar(ByVal TResol As Integer, ByVal MasIn1(,) As Byte, ByVal MasIn2(,) As Byte, ByRef MasOut(,) As Byte)

Dim ax, ay As Integer

For ax = 0 To fWidth(0) - 1

For ay = 0 To fHeight(0) - 1

If (MasIn1(ax, ay) > MasIn2(ax, ay)) Then

MasOut(ax, ay) = MasIn1(ax, ay)

MasOut(ax, ay) = MasIn2(ax, ay)

"Процедура Центры линий рабочей поверхности

ClearMas(0, MasC)

ClearMas(0, Mas3)

CenterLine(0, MasC, Mas3, NumericUpDown.Value)

SaveToFile(0, Mas3, ".\Центры линий рабочей поверхности.bmp")

"Процедура Центры линий мнимой поверхности

ClearMas(0, MasCM)

ClearMas(0, Mas4)

CenterLine(0, MasCM, Mas4, Me.NumericUpDownMRA.Value)

SaveToFile(0, Mas4, ".\Центры линий мнимой поверхности.bmp")

"Процедура получения муара центров линий

Sub MyarEffectLine()

ClearMas(0, Mas3)

ClearMas(0, Mas4)

ClearMas(0, MasMyarC)

Myar(0, Mas3, Mas4, MasMyarC)

SaveToFile(0, MasMyarC, ".\Муаровый эффект центров линий.bmp")

"Процедура получения муара

Sub MyarEffect()

ClearMas(0, MasC)

ClearMas(0, MasCM)

ClearMas(0, MasMyar)

LoadFromFile(0, ".\Вид мнимой поверхности.bmp", MasCM)

LoadFromFile(0, ".\Вид рабочей поверхности.bmp", MasC)

Myar(0, MasC, MasCM, MasMyar)

SaveToFile(0, MasMyar, ".\Муаровый эффект.bmp")

"Процедура авто создания муаров и поиска центров линий

Public Sub autocreatall()

MyarEffectLine()

Private Sub Options_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

CB_Res.SelectedIndex = 0

CB_Pov.SelectedIndex = 0

Me.Location = New System.Drawing.Point(10, 0)

Me.TopMost = True

Private Sub ButtonBMP(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click

statW = "CreateBMPbrowser"

Private Sub TabControl1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged

TabControl1.Refresh()

If CheckBoxAuto.Checked = True Then

If SomeChange = True Then

Button2_Click(sender, e)

createcameraviewA = 3

SomeChange = False

refreshwindow = True

Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click

LoadFromFile(0, ".\Центры линий рабочей поверхности.bmp", Mas3)

LoadFromFile(0, ".\Центры линий мнимой поверхности.bmp", Mas4)

Dim h, cosf1, cosf2 As Double

Dim fs As IO.FileStream = New IO.FileStream("test", IO.FileMode.Create)

Dim w As IO.TextWriter = New IO.StreamWriter(fs)

Dim ax, ay As Integer

For ax = 0 To fWidth(0) - 1

For ay = 0 To fHeight(0) - 1

If (Mas3(ax, ay) = &HFF) And (Mas4(ax, ay) = &HFF) Then

cosf1 = NumericUpDownPZ.Value / Math.Sqrt(NumericUpDownPZ.Value ^ 2 + ax ^ 2 + ay ^ 2)

cosf2 = NumericUpDownCH.Value * Math.Cos(NumericUpDownCA.Value * Math.PI / 180) / Math.Sqrt(NumericUpDownCH.Value ^ 2 + ax ^ 2 + ay ^ 2 + 2 * ax * NumericUpDownCH.Value * Math.Cos(NumericUpDownCA.Value * Math.PI / 180))

h = NumericUpDownWRS.Value() / (Math.Tan(Math.Acos(cosf1)) + Math.Tan(Math.Acos(cosf2)))

w.WriteLine(" X:" + CStr(ax) + " Y:" + CStr(ay) + " H:" + CStr(h))

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Button2_Click(sender, e)

createcameraviewA = 3

LStatus.Text = ""

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

LStatus.Text = "Создание растра"

ClearMas(0, Mas)

CreatLine(0, Mas, NumericUpDownWRS.Value, NumericUpDownWRS.Value - NumericUpDownWRS1.Value, NumericUpDownWRA.Value)

LStatus.Text = "Сохранение растра"

SaveToFile(0, Mas, ".\Рабочий растр.bmp")

LStatus.Text = "Сохранение растра2"

ClearMas(0, Mas2)

Camera(0, Mas, Mas2, NumericUpDownPZ.Value * fWidth(0) / 16)

SaveToFile(0, Mas2, ".\Искажения рабочего растра.bmp")

refreshwindow = True

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

createcameraview = True

refreshwindow = True

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

createcameraview = True

createcameraviewM = True

LStatus.Text = "Наложение растра"

refreshwindow = True

LStatus.Text = ""

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click

MyarEffectLine()

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click

Protected Overrides Sub Finalize() "Процедура завершения

MyBase.Finalize()

Private Sub NumericUpDownWRS_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDownWRS.ValueChanged

SomeChange = True

NumericUpDownWRS1.Value = NumericUpDownWRS.Value \ 2

Private Sub NumericUpDownPZ_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDownPZ.ValueChanged

SomeChange = True

TrackBarPZ.Value = NumericUpDownPZ.Value

refreshwindow = True

Private Sub TrackBarPZ_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBarPZ.Scroll

SomeChange = True

NumericUpDownPZ.Value = TrackBarPZ.Value

refreshwindow = True

Private Sub TrackBarCX_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBarCX.Scroll

SomeChange = True

NumericUpDownCX.Value = TrackBarCX.Value

If CheckBox1.Checked Then

createcameraview = True

refreshwindow = True

Private Sub NumericUpDownCX_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDownCX.ValueChanged

SomeChange = True

TrackBarCX.Value = NumericUpDownCX.Value

If CheckBox1.Checked Then

createcameraview = True

refreshwindow = True

Private Sub TrackBarCY_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBarCY.Scroll

SomeChange = True

NumericUpDownCY.Value = TrackBarCY.Value

If CheckBox1.Checked Then

createcameraview = True

refreshwindow = True

Private Sub NumericUpDownCY_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDownCY.ValueChanged

SomeChange = True

TrackBarCY.Value = NumericUpDownCY.Value

NumericUpDownCH.Value = Math.Sqrt(NumericUpDownCX.Value ^ 2 + NumericUpDownCY.Value ^ 2 + NumericUpDownCZ.Value ^ 2)

NumericUpDownCA.Value = Math.Acos(NumericUpDownCZ.Value / Math.Sqrt(NumericUpDownCX.Value ^ 2 + NumericUpDownCY.Value ^ 2 + NumericUpDownCZ.Value ^ 2)) * 180 / Math.PI

If CheckBox1.Checked Then

createcameraview = True

refreshwindow = True

Private Sub TrackBarCZ_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBarCZ.Scroll

SomeChange = True

NumericUpDownCZ.Value = TrackBarCZ.Value

If CheckBox1.Checked Then

createcameraview = True

refreshwindow = True

Private Sub NumericUpDownCZ_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDownCZ.ValueChanged

SomeChange = True

TrackBarCZ.Value = NumericUpDownCZ.Value

NumericUpDownCH.Value = Math.Sqrt(NumericUpDownCX.Value ^ 2 + NumericUpDownCY.Value ^ 2 + NumericUpDownCZ.Value ^ 2)

NumericUpDownCA.Value = Math.Acos(NumericUpDownCZ.Value / Math.Sqrt(NumericUpDownCX.Value ^ 2 + NumericUpDownCY.Value ^ 2 + NumericUpDownCZ.Value ^ 2)) * 180 / Math.PI

If CheckBox1.Checked Then

createcameraview = True

refreshwindow = True

Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll, TrackBar3.Scroll, TrackBar2.Scroll

refreshwindow = True

Private Sub NumericUpDownMRS1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDownMRS1.ValueChanged, NumericUpDown.ValueChanged, NumericUpDownMRA.ValueChanged, NumericUpDownWRA.ValueChanged

Подобные документы

    Разработка и реализация программы расчета заданных функций на языке программирования VBA. Математическая модель, параметры и характеристики задачи, критерии оценки эффективности созданного модуля. Разработка алгоритма и тестирование программного модуля.

    курсовая работа , добавлен 08.09.2010

    Разработка игровой программы, моделирующей поведение мяча в закрытом безвоздушном пространстве. Изменение значения гравитации и трения о стены. Интерфейс программы, ее основная форма. Блок-схема программы и ее основной код. Добавление третьего измерения.

    контрольная работа , добавлен 27.08.2012

    Структура и основные операции коммерческого банка. Использование языка программирования Visual Basic for Application, математическая формулировка задачи. Разработка модуля программы расчёта кредитов и депозитов. Схема алгоритма выполнения программы.

    курсовая работа , добавлен 09.04.2012

    Разработка алгоритма решения задачи численного интегрирования методом трапеции. Словесное описание и блок-схема разработанного алгоритма программы. Описание интерфейса, главного окна и основных форм программы. Проверка работоспособности программы.

    курсовая работа , добавлен 16.03.2012

    Разработка эскизного и технического проектов программы, моделирующей игру "Кости". Постановка задачи, описание алгоритма; написание программы, организация входных и выходных данных; выбор программных средств; спецификация, текст, условия выполнения.

    курсовая работа , добавлен 11.02.2012

    Методы обработки информации при решении прикладных задач. Математическая модель задачи. Блок-схема алгоритма программы. Компоненты, которые используются для работы в программе: элементы интерфейса; процедуры; операторы. Текст программы с пояснениями.

    курсовая работа , добавлен 07.01.2011

    Сущность понятия "код блюда". Алгоритмы обучения и использования программы. Логика работы программы. Общий интерфейс программы. Последовательность обучения программе Lota+. Интерфейс программы в момент выбора параметров и получения общего результата.

    курсовая работа , добавлен 01.12.2009

    Разработка программы, моделирующей процесс падения шариков в Доске Гальтона - приборе, наглядно иллюстрирующем некоторые законы теории вероятностей. Структура метода решения. Блок-схема меню программы. Процедуры, интерфейс, руководство пользователя.

    курсовая работа , добавлен 15.01.2013

    Разработка алгоритма решения определенного интеграла методом трапеций для подынтегральной функции и моделирования задачи вынужденных колебаний без затухания. Описание интерфейса программы в среде Delphi и MathCad; идентификаторы, модули и приложения.

    курсовая работа , добавлен 28.05.2013

    Анализ, математическая постановка задачи. Описание алгоритма работы основной программы. Детализация отдельных участков программы. Графический интерфейс программы "15". Описания используемых типов, глобальных переменных, процедур, функций. Процесс отладки.


Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности и правилами сайта, изложенными в пользовательском соглашении