Главная » Просмотр файлов » Секция 7 - MATLAB в образовании и Интернете

Секция 7 - MATLAB в образовании и Интернете (1250002), страница 10

Файл №1250002 Секция 7 - MATLAB в образовании и Интернете (Секция 7 - MATLAB в образовании и Интернете) 10 страницаСекция 7 - MATLAB в образовании и Интернете (1250002) страница 102021-04-06СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 10)

Вычисливимя файла, функция getGS проверяет его наличие на жестком диске компьютера. Если файл найден, полю isexist возвращаемой структуры присваивается значение 1. Анализируя значение gs.isexist, расчетная функциядолжна либо произвести новый расчет, либо использовать имеющийсяграфический файл gs.filename. В нашем примере с построением диаграммы направленности функцией radiation достаточно поместить часть тек1868Секция 7. MATLAB в образовании и Интернетеста, выделенного строками, состоящими из знаков равенства, внутрь условия if:gs = getGS( ins );if( gs.isexist )% ===================================================...% ===================================================end; % end of if( gs.isexist )При вычислении имени графического файла функция getGS помимообязательных параметров задачи, проверяет также наличие во входнойструктуре параметров ins.format и ins.quality, которые определяют выборграфического формата и качества растрового изображения.

В настоящеевремя параметр ins.format может иметь значения ‘gif’ (или 1), ‘mpeg’ (или‘mpg’, или 2), ‘jpeg’ (или ‘jpg’, или 3) и ‘png’ (или 4). Параметр ins.qualityможет иметь значения 1, 2 или 3. Меньшее значение ins.quality соответствует меньшему размеру графического файла, большее значение ins.qualityсоответствует улучшению качества изображения. Если параметр качестваins.quality не задан, выбирается оптимальное соотношение качества и размера, т.

е. значение 2. Если не задан формат изображения, т. е. поле formatотсутствует во входной структуре ins, предполагается, что следует выбратьформат jpeg. Значения формата и качества, используемые по умолчанию,можно также указать соответственно во втором и в третьем аргументахфункции getGS. Например, чтобы в приложениях, которые генерируют видеоклипы, по умолчанию использовался формат mpeg с максимальнымсжатием файла, следует выбрать следующий способ вызова функцииgetGS:gs = getGS( ins, 'mpeg', 1 );Вне зависимости от наличия параметров format и quality во входнойструктуре ins, возвращаемая структура gs всегда содержит эти поля, причем gs.format всегда имеет числовое значение, даже если входной параметр ins.format или значение по умолчанию заданы в текстовом виде. Этоупрощает последующее использование структуры gs.При типовой внутренней структуре каталога приложения, описаннойв статье [2], разработчик задачи может не заботится о размещении вновьсгенерированного изображения на диске компьютера, так как эту операцию также производит общая функция saveBitmap (в случае статическогоизображения) или saveMovie (в случае видеоклипа).

Поскольку в примерес диаграммой направленности генерируется статическое изображение, мыограничимся примером с использованием функции saveBitmap. Ее следуетвызвать непосредственно перед генерацией возвращаемого текстового потока rs. Так что в окончательном виде заключительная часть расчетнойфункции должна выглядеть следующим образом:% ===================================================saveBitmap( f, gs );1869Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»end; % end of if( gs.isexist )if( es.count )rs = getError( es );elsers = getHtml( ins, gs );end;% end of radiationНапомним, что f — это дескриптор графического окна, созданногокомандой figure (см.

раздел 2).Функция saveBitmap сохраняет изображение, сформированное расчетной функцией в окне f, в формате gs.format с качеством, определяемымпараметром gs.quality в файле с расширением gs.type. Приведем часть текста функции saveBitmap, отвечающую за сохранение изображения в формате jpeg:print(f, '-djpeg', '-r0', gs.name);if gs.quality == 1tmp = imread(gs.name, 'jpg');imwrite(tmp, gs.filename, 'jpg', 'Quality', 25);elseif gs.quality == 3tmp = imread(gs.name, 'jpg');imwrite(tmp, gs.filename, 'jpg', 'Quality', 100);end;Для понимания приведенного фрагмента полезно иметь в виду, чтополное имя файла gs.filename функцией getGS определено как [gs.name ‘.’gs.type].Перед сохранением изображения в файл функция saveBitmap, принудительно завершает все операции с графически объектами, используявстроенную функцию MATALAB drawnow.При выборе каталога, куда функция saveBitmap сохраняет файл сграфическим изображением, предполагается, что каждое приложение размещено в отдельном каталоге, внутри которого имеется дочерний каталогmfiles с текстами функций MATLAB и дочерний каталог tmpfiles, предназначенный для хранения временных файлов, в том числе графических изображений, сгенерированных приложением.

Иными словами, каталог рассматриваемого приложения имеет следующую структуру:└─radiation├─mfiles└─tmpfilesКак показано в [2], такая структура каталогов облегчает администрирование веб сервера и позволяет в конечном итоге автоматизировать генерацию веб интерфейса. Рабочим каталогом для приложения MATLABявляется каталог mfiles. Поскольку полученное изображение необходимосохранить в «сестринский» каталог tmpfiles, функция saveBitmap в про1870Секция 7. MATLAB в образовании и Интернетестейшем случае перед записью графического файла производит переход вкаталог хранения временных файлов:cd('../tmpfiles');Чтобы избежать переполнения каталога хранения временных файлов, эта же функция производит очистку каталога, удаляя из него все файлы, срок хранения которых превысил определенный предел.

Для очисткииспользуется функция wscleanup, входящая в комплект MWS. В настоящее время мы удаляем файлы, хранящиеся более 36 часов:wscleanup('*.*', 36);Такой выбор времени хранения был выбран из соображений удобства при использовании учебных задач в лекционных демонстрациях, поскольку лектор подбирает параметры демонстраций обычно в день передлекцией.4. Генерация текстового потокаВ завершение своей миссии расчетная функция (в рассматриваемомпримере это функция radiation) должна сформировать текстовую строкуrs.

Как показано в [2], в простейшем случае можно ограничиться минимумом, который должен включать HTML тег <img> с атрибутом src, указывающим на виртуальный адрес сгенерированного графического файла навеб сайте:rs = [sprintf('Content-type: text/html\n\n') ...'<html><body>' ...'<img src=”http://MATLAB/tutornet.ru/eldin/' ...'radiation/tmpfiles/' g.filename '”></body></html>']Однако на сайте MATLAB.tutornet.ru применяется более продвинутая технология генерации возвращаемого текста. Она инкапсулирована вбиблиотечную функцию getHtml, которая уже упоминалась выше.

В общем случае функция getHtml способна принимать три аргумента, но только первые два из них обязательны. Третий аргумент может использоватьсяпри отладке задачи. Если указаны все три аргумента, то результат вызовафункцииrs = getHtml( ins, gs, outfile );помимо передачи в указанную переменную rs дополнительно записываетсяв файл outfile на жесткий диск компьютера.Соответствие физического адреса графического файла в файловойсистеме компьютера его же виртуальному адресу на веб сайте определяется настройками веб сервера.

Эта тема детально рассмотрена в статье [2].Здесь же поясним, что, получив текст, веб браузер клиента обнаружит внем тег <img> и отправит на веб сервер еще один запрос, затребовав рисунок. Веб сервер в ответ отправит рисунок с жесткого диска компьютера.На одной веб странице можно разместить несколько рисунков, сгенерированных расчетной программой, но такая возможность не реализует1871Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»ся функцией getHtml, поскольку в настоящее время все задачи, размещенные на сайте MATLAB.tutornet.ru, производят построение не более чем одного статического рисунка или видеоклипа.

Функция getHtml выбираетнаиболее подходящий способ внедрения полученного графического иливидеоизображения в возвращаемый текстовой поток сообразно типу изображения (gs.format) и типу веб браузера клиента.Тип веб браузера в настоящее время автоматически определяетсяHTML формой и передается через скрытый параметр interface. Если клиентиспользует Internet Explorer версии 5.5 или выше, этому параметру присваивается значение ie. В этом случае возвращаемый текст HTML формируется с учетом расширенных возможностей браузера Internet Explorer. Вовсех остальных случаях, в том числе при отсутствии параметра interface взапросе, формируется максимально упрощенный текст HTML, которыйпредположительно должен без ошибок интерпретироваться веб браузерамиустаревших типов. MATLAB Web Server не способен самостоятельно определить тип веб браузера клиента (в отличие от большинства других серверных продуктов), что, вероятно, следует признать определенным недостатком MWS.

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

Эти скрипты определяют тип веб браузераи, если позволяют возможности браузера, производят дополнительные настройки возвращаемого изображения. Например, при использовании Internet Explorer’а по окончании загрузки изображения производится его автоматическое масштабирование под размер окна браузера, а ход вычисленийи загрузки отображается на экране клиента.Помимо тега <img> с атрибутом src, для отображения сгенерированного изображения используется также тег <img> с атрибутом dynsrc и тег<embed>.

Выбор тега и атрибутов основывается на анализе параметровgs.format и ins.interface. Например, <img> с атрибутом dynsrc выбираетсяфункцией getHtml для анимированного изображения в формате gif(gs.format==1) при условии, что ins.interface==’ie’. В остальных случаяхдля видеоизображения выбирается тег <embed>, а для статического рисунка (gs.format==3 | gs.format==4) — тег <img> с атрибутом src.5. Выбор веб интерфейсаСуществует четыре основных варианта встраивания приложенияMATLAB в HTML страницы.1872Секция 7. MATLAB в образовании и ИнтернетеВо-первых, приложение можно вызвать из адресной строки веб браузера.

Например, рассмотренное выше приложение реально размещено насайте MATLAB.tutornet.ru, так что диаграмму направленности, изображенную на Рис. 1, можно получить, набрав в адресной строке следующийзапрос:http://MATLAB.tutornet.ru/cgibin/matweb.exe?mlmfile=radiation&beta=0.7&alpha=30&elevation=15&azimuth=30&k=60.

Если пользователь совершитошибку в запросе, он получит исчерпывающую информацию, которая позволит легко ее устранить. Пример сообщения об ошибке приведен наРис.2. Мы используем данный способ вызова для проверки приложенийотносительно их устойчивости к злонамеренным действиям посетителейсайта.Рис. 2. Сообщение об ошибке во входных параметрах.Во-вторых, запрос на выполнение приложения можно оформить ввиде гиперссылки. Для этого в текст произвольной HTML страницы достаточно вставить тег <a>, указав параметры запроса в его атрибуте href.Например:<ahref=“http://MATLAB.tutornet.ru/cgibin/matweb.exe?mlmfile=radiation&beta=0.7&alpha=30&elevation=15&azimuth=30&k=60”>Излучение релятивистской частицы</a>.

Характеристики

Тип файла
PDF-файл
Размер
3,69 Mb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6314
Авторов
на СтудИзбе
312
Средний доход
с одного платного файла
Обучение Подробнее