Я пытаюсь сделать в Matlab, GUI, что пользователь вводит точки и связь между ними. он также вводит фотографию карты (png-изображение) и масштаб для осей (ax x будет от 0 до масштаба). В конце (после ввода всех входных данных) я хочу показать пользователю изображение со всеми узлами и подключением к нему.matlab gui - нарисовать точки и линии на изображении
У меня есть 5 MatLab файлов - screen1.m, screen2.m, screen3.m, screen4.m, globalParams.m
в globalParams У меня есть глобальный Params, так что я могу использовать их с GUI экрана на экран графического интерфейса пользователя , на экране 1 пользователь вводит число узлов (например, 5), а также входит в карту. когда он нажимает кнопку «Далее», функция обратного вызова вызывает «screen2();
». в screen2.m пользователь вводит координату (x, y), а когда он нажимает кнопку «Далее», функция обратного вызова вызывает «screen3();
». на экране3 пользователь обновляет все соединения между всеми узлами. при завершении он нажимает кнопку «Готово», а функция обратного вызова вызывает «screen4
». в screen4 я добавил в оси GUI, и там я сделал «imshow
» .. , но реальная вещь, которую я хочу сделать, - это изменить оси, чтобы они были от 0 до шкалы (вместо 0 до 1), я хочу также (я сделал это с imshow), и последнее и самое важное, что я хочу нанести на изображение, это узлы и линии между ними (если пользователь добавляет соединение между узлом i в узел j, поэтому в изображение будет линией между ними, возможно, поставить линии и узлы с различными цветами, чтобы мы могли различать линии и узлы) в screen4 мы имеем:. xNodes и yNodes - 2 массивов для узлов «х "и" y ". ((xNodes (1), yNodes (1) является узлом 1). Также у нас есть Шкала и полныйPathName для изображения name. у нас также есть hopsMatrix это 2D-массив, если hopsMatrix (i, j) = 1 существует связь между i и j.
некоторый код:
в screen1, образ загрузки и numOfNodes и масштаба:
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global fullPathName;
[fileName pathName] = uigetfile({'*.png'},'File Selector');
fullPathName = strcat(pathName, fileName);
imshow(fullPathName);
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global numOfNodes;
global scale;
scale = str2num(get(handles.edit1, 'string'));
numOfNodes = str2num(get(handles.edit2, 'string'));
в screen4, где у меня есть все входы, и я хочу, чтобы поместить узлы в карте (I не знаю, как это сделать, так что сейчас это код):
% --- Executes just before screen4 is made visible.
function screen4_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to screen4 (see VARARGIN)
global fullPathName;
global xNodes;
global yNodes;
global scale;
global hopsMatrix;
img = imread(fullPathName);
imshow(fullPathName);