Friday, May 3, 2013

Create slider with GUI MATLAB part II

เพิ่มเติมจากของเดิมนิดหน่อย โดยเอา slider ไปปรับค่ารัศมีของวงกลม หลักการเหมือนเดิมครับ ค่าที่รับมาจาก slider หรือ edit text ถูกนำไปให้ตัวแปรที่ใช้กำหนดรัศมีของวงกลม ตามรายละเอียดด้านล่างครับ

r คือตัวแปรสำหรับรับค่าจาก slider หรือ edit text

% รับค่าจาก slider และสั่งวาดกราฟวงกลม ไปบน axes1
handles.axes1;
r=str2double(handles.sliderValue);
t=0:pi/24:2*pi;
x=r*cos(t);
y=r*sin(t);
plot(x,y,x,y,'r.')
% รับค่าจาก edit text และสั่งวาดกราฟวงกลม ไปบน axes1
handles.axes1;
editValue=str2double(get(handles.edit1,'String'));
r=editValue;
t=0:pi/24:2*pi;
x=r*cos(t);
y=r*sin(t);
plot(x,y,x,y,'r.')

หน้าตา GUI ก็ประมาณนี้ครับ  ดาวโหลดไฟล์ที่นี่เลยครับ ==>>> download files


ในรายละเอียดยังมีส่วนที่ต้องแก้ไขเพื่อให้ GUI ออกมาใช้งานได้อย่างดีเยี่ยม ซึ่งคิดว่าหากใครต้องการศึกษา มันก็จะเป็นแบบฝึกหัดอย่างดีเลยครับ เช่น เพิ่ม axis square และ
axis([-100 100 -100 100]) เข้าไปในคำสั่ง plot เป็นต้น
 

Thursday, May 2, 2013

Create slider with GUI MATLAB part I

 ครั้งนี้ว่าด้วยเรื่องการใช้งาน slider ครับ เริ่มต้นจากการใช้งานที่ง่ายที่สุดก่อน สำหรับแนวคิดในเรื่องนี้ คือ การใช้งาน slider โดยแจ้งสถานะหรือตำแหน่งสเกลให้ไปปรากฎบน edit text และในทางตรงกันข้ามหากป้อนตัวเลข (ไม่เกิน min, max เพราะยังไม่ได้เขียนเงื่อนไขกันไว้) ก็เป็นการกำหนดให้ slider อยู่ ณ ตำแหน่งนั้นได้เช่นกัน ประโยนช์สำหรับ slider นั้นมีเยอะครับ โดยรวมหรือที่เข้าใจกันได้ง่ายๆก็คือ เอาไว้ใช้ปรับค่าพารามิเตอร์ต่างๆ ตามต้องการ โดยการเลื่อนปุ่ม slider นี่แหละครับ

นี่เป็นหน้าตา GUI ที่ทำขึ้นแบบง่ายๆ และไฟล์ต่างๆ โหลดจากที่นี่ครับ ==>>> Slider01


 รายละเอียดที่สำคัญใน GUI-Slider

% --- Executes on slider movement.
function slider1_Callback(hObject, eventdata, handles)

set(handles.slider1,'Min',0)
set(handles.slider1,'Max',100)
slider_value = get(handles.slider1,'Value');
handles.sliderValue=num2str(slider_value);
set(handles.edit1,'String',handles.sliderValue);
guidata(gcbo,handles);

function edit1_Callback(hObject, eventdata, handles)

editValue=str2double(get(handles.edit1,'String'));
handles.editValue=editValue;
set(handles.slider1,'Value',handles.editValue);
guidata(gcbo,handles);

ครั้งต่อไปคงเป็นตัวอย่างการประยุกต์ของ slider