Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Главным требованием к графическому интерфейсу программного продукта является удобное обеспечение взаимодействия между системой и человеком. Чаще всего в последнее время используются диалоговые окна при работе человека с ЭВМ.

 
 

Вид окна модуля:

Рисунок 3.1- Начальный вид окна модуля

 

Главное окно программы можно разделить на две части: окно задания параметров, окно вывода расчетного графика.

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

 

Sech(1).name=get(handles.sech1, 'String');

Sech(2).name=get(handles.sech2, 'String');

Sech(3).name=get(handles.sech3, 'String');

Sech(4).name=get(handles.sech4, 'String');

Sech(5).name=get(handles.sech5, 'String');

Sech(6).name=get(handles.sech6, 'String');

Sech(7).name=get(handles.sech7, 'String');

 

S_MAX=7;

for n=1: S_MAX

Sech(n).name;

end

% Name_Uch= ['RES_' Sech(1).name '_' Sech(2).name '.txt'];

% % set(handles.txt_Name_Uch, 'String', Name_Uch);

% Data_Uch =csvread(Name_Uch);

% SIZ_Uch= size(Data_Uch);

%

% Numm_elem_Uch=numel(Data_Uch);

% S1 = Data_Uch(1,:);

% S2 = Data_Uch(2,:);

% S3 = Data_Uch(3,:);

% B_H = S1(1, 1); OMEGA_H =S1(1, 2); T_SRED_H = S1(1, 3);

% B_K = S2(1, 1); OMEGA_K =S2(1, 2); T_SRED_K = S2(1, 3);

% SREZKA_H= S3(1, 1); SREZKA_K = S3(1, 2); SHEROX= S3(1, 3);

% DISTANT =S3(1, 4); F = S3(1, 5);

% %set(handles.ed_MODULF, 'String', num2str(F));

 

 

%___________ Чтение файлов линий тока ____________

 

for m=1: S_MAX-1

Name_Tok= ['TOK_' Sech(m).name '_' Sech(m+1).name '.txt'];

% Name_Tok= 'TOK_TeST1_TeST2.txt'

Data_Tok =csvread(Name_Tok);

SIZ_Tok= size(Data_Tok);

Numm_elem_Tok=numel(Data_Tok);

arBH(m).Tok = Data_Tok(1,:);

arBK(m).Tok = Data_Tok(3,:);

end

NQ= length(arBH(1).Tok)-1;

set(handles.ed_N, 'String', num2str(NQ));

% arBH

% arBH.Tok

% arBK.Tok

 

Блок, расчитывающий формулу Шези:

Q = str2double(get(handles.ed_Q, 'String'));

F = str2double(get(handles.ed_MODULF, 'String'));

DZ = Q^2*F;

set(handles.ed_DZ, 'String', num2str(DZ));

DISTANT = DIST(end);

UKLON = (DZ/DISTANT)*1000;

set(handles.ed_UKLON, 'String', num2str(UKLON));

DQ = Q/NQ;

set(handles.ed_DQ, 'String', num2str(DQ));

 

График можно представить в двух вариантах:

1) Линейный вывод линий тока. В данном случае линии тока строятся путем соединения прямых линий отдельных участков.

 

Рисунок 3.1 - Линейный вывод тока

Код, описывающий линейный вывод тока:

if strcmp(interp_type, 'linear')

for k=1: S_MAX-1

for n=NN: NQ

if (n==1)|(n==NQ)

Col= 'black'; LW=3;

else Col= 'blue'; LW = 2;

end

line([DIST(k) DIST(k+1)], [arBH(k).Tok(n)+REL(k)...

arBK(k).Tok(n)+REL(k+1)],...

'LineWidth', LW, 'Color', Col)

end

end

line([DIST], [REL], 'LineWidth', 4, 'Color', 'black')

end

% AA = [arBH.Tok];

% AA1 =[arBH(1).Tok];

 

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

Рисунок 3.2 - Вывод линий тока сплайн

Код, описывающий вывод линий тока сплайн:

LSS =LinTok+M_REL;

plt=0.01; % шаг plot

if strcmp(interp_type, 'cubic')

for m=NN: NQ

X=DIST;

Y= LSS(:, m);

XX=DIST(1): plt*DIST(end): DIST(end);

YY= spline(X, Y, XX);

 

if(m==1) | (m==NQ)

Col='black'; LW =4;

else Col='blue'; LW = 2;

end

%plot(X, Y, 'o', XX, YY, '-', 'LineWidth', 2, 'Color', Col, 'LineWidth', LW)

plot(XX, YY, '-', 'LineWidth', 2, 'Color', Col, 'LineWidth', LW)

end

X=DIST;

Y= LSS(:, 1);

XX=DIST(1): plt*DIST(end): DIST(end);

YY= spline(X, Y, XX);

plot(XX, YY, '-', 'LineWidth', 2, 'Color', Col, 'LineWidth', LW)

 

В качестве дополнительной опции существует функция, которая выводит график без линий тока, а только границы русла реки:

Рисунок 3.3 - Вывод графика без линий тока


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.008 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал