Tôi muốn có một chương trình trong MATLAB với GUI, khi chạy chương trình, người dùng có thể vẽ bất kỳ thứ gì bằng chuột trên trục trong GUI và tôi muốn lưu hình ảnh đã tạo trong ma trận. làm thế nào tôi có thể làm điều này?Vẽ bằng chuột trên GUI trong MATLAB
Trả lời
Cuối cùng tôi tìm thấy mã tốt và tôi đã thay đổi một số phần để tùy chỉnh cho tôi. bằng cách này, người dùng có thể vẽ bất kỳ thứ gì trong trục bằng chuột:
function userDraw(handles)
%F=figure;
%setptr(F,'eraser'); %a custom cursor just for fun
A=handles.axesUserDraw; % axesUserDraw is tag of my axes
set(A,'buttondownfcn',@start_pencil)
function start_pencil(src,eventdata)
coords=get(src,'currentpoint'); %since this is the axes callback, src=gca
x=coords(1,1,1);
y=coords(1,2,1);
r=line(x, y, 'color', [0 .5 1], 'LineWidth', 2, 'hittest', 'off'); %turning hittset off allows you to draw new lines that start on top of an existing line.
set(gcf,'windowbuttonmotionfcn',{@continue_pencil,r})
set(gcf,'windowbuttonupfcn',@done_pencil)
function continue_pencil(src,eventdata,r)
%Note: src is now the figure handle, not the axes, so we need to use gca.
coords=get(gca,'currentpoint'); %this updates every time i move the mouse
x=coords(1,1,1);
y=coords(1,2,1);
%get the line's existing coordinates and append the new ones.
lastx=get(r,'xdata');
lasty=get(r,'ydata');
newx=[lastx x];
newy=[lasty y];
set(r,'xdata',newx,'ydata',newy);
function done_pencil(src,evendata)
%all this funciton does is turn the motion function off
set(gcf,'windowbuttonmotionfcn','')
set(gcf,'windowbuttonupfcn','')
Chức năng ginput
lấy tọa độ của moueclicks trong một hình. Bạn có thể sử dụng chúng như các điểm của một đường thẳng, đa giác, v.v.
Nếu điều này không phù hợp với nhu cầu của bạn, bạn cần phải giải thích chính xác bạn mong đợi người dùng vẽ gì.
Đối với bản vẽ tự do này có thể hữu ích:
http://www.mathworks.com/matlabcentral/fileexchange/7347-freehanddraw
tôi đã phát triển một chương trình để phát hiện ký tự mà người dùng vẽ, để người dùng có thể vẽ ký tự chữ và số. –
Xem chỉnh sửa của tôi ở trên. –
Cách duy nhất mà tôi biết để tương tác với các cửa sổ matlab sử dụng một con chuột là ginput, nhưng bây giờ điều này sẽ cho phép bạn vẽ bất cứ điều gì với lỏng.
Có nhiều cách để sử dụng các thành phần Java Swing trong kiểm tra MATLAB http://undocumentedmatlab.com/ để biết thêm thông tin.
EDIT: Bạn có thể muốn kiểm tra điều này.
http://blogs.mathworks.com/videos/2008/05/27/advanced-matlab-capture-mouse-movement/
- 1. Chức năng thực hiện trên GUI đóng trong MATLAB
- 2. Vẽ một vòng tròn trên vải bằng sự kiện chuột
- 3. MATLAB GUI Giao diện
- 4. MATLAB: GUI dần dần bị chậm hơn
- 5. KineticJS - Vẽ các đường bằng chuột
- 6. Chu kỳ trên màu sắc trong khi vẽ trong MATLAB
- 7. MATLAB cách nhận tọa độ nhấp chuột
- 8. Vẽ các điểm 3D trong Matlab
- 9. vẽ pyqt trên tiện ích con xuất hiện của GUI
- 10. Làm cách nào để tạo GUI trong tab trong MatLab?
- 11. MATLAB: Vẽ một đường trên một ảnh đen trắng
- 12. WPF - Vẽ trên vải có các sự kiện chuột
- 13. Vẽ các đường thẳng đứng trên sơ đồ phổ MATLAB
- 14. Sự kiện chuột GTK # trong vùng vẽ
- 15. Bản đồ động trong Gnuplot (được vẽ trong MATLAB)
- 16. Gán giá trị cho văn bản tĩnh trong GUI MATLAB
- 17. Vẽ hình chữ nhật bằng cách nhấp chuột, di chuyển chuột và nhấp vào
- 18. Làm thế nào để vẽ Geosphere trong MATLAB?
- 19. dữ liệu Vẽ đúng thời hạn (ngày) trục trong matlab
- 20. Tôi có thể lập trình GUI bằng MATLAB như thế nào?
- 21. Responsive GUI MATLAB mà không gọi drawnow() trực tiếp
- 22. Kích hoạt JXCollapsiblePane bằng chuột trên
- 23. Làm thế nào để ngăn chặn nhãn LATEX trong MATLAB GUI trở nên mờ?
- 24. Vẽ hình chữ nhật khi chuột kéo bằng MVVM trong WPF
- 25. Làm thế nào để vẽ một đường trên một hình ảnh trong MATLAB?
- 26. Cách vẽ bitmap trên Android bằng OpenGL
- 27. Vẽ và lưu dưới dạng Tệp trong MATLAB
- 28. Làm thế nào để vẽ hai số liệu trong MATLAB
- 29. bản vẽ Gia cho meshgrid trong Matlab (hoặc Octave)
- 30. Cách vẽ ô lưới 3D (khối lập phương) trong Matlab
Làm cách nào để sử dụng chức năng này để vẽ? – mikeglaz