MATLAB에서 그 눈을 만들자.

10072 단어 xeyesmatlab

금요일 저녁은 동기가 없다.



누군가에게 보여지면 의욕이 나올지도 모른다! 그렇다면 그 녀석의 차례입니다.

MATLAB에서 이쪽을 보는 아이츠를 만들어 보자.



몇 분만에 할 수 있네요. rectangle로 원을 그립니다.

meyes.m
function meyes

F = figure(66);
A = axes;
L = rectangle('Position',[1 0 2 4],'Curvature',[1 1],'LineWidth',9);
R = rectangle('Position',[4 0 2 4],'Curvature',[1 1],'LineWidth',9);
Lb = rectangle('Position',[2 2 0.2 0.2],'Curvature',[1 1],'LineWidth',5,'FaceColor','k');
Rb = rectangle('Position',[5 2 0.2 0.2],'Curvature',[1 1],'LineWidth',5,'FaceColor','k');

A.Position = [0 0 1 1];
axis([0 7 0 4])
axis off
axis equal

좋은 느낌.



하지만 정면밖에 보지 않고, 동공이 열려 있다.

커서를 쫓아가자.



WindowButtonMotionFcn 을 쓰면 좋다.

meyes.m
function meyes

F = figure(66);
A = axes;
L = rectangle('Position',[1 0 2 4],'Curvature',[1 1],'LineWidth',9);
R = rectangle('Position',[4 0 2 4],'Curvature',[1 1],'LineWidth',9);
Lb = rectangle('Position',[2 2 0.2 0.2],'Curvature',[1 1],'LineWidth',5,'FaceColor','k');
Rb = rectangle('Position',[5 2 0.2 0.2],'Curvature',[1 1],'LineWidth',5,'FaceColor','k');

F.WindowButtonMotionFcn = @Move;
A.Position = [0 0 1 1];
axis([0 7 0 4])
axis off
axis equal

    function Move (~,~)
        xy = A.CurrentPoint;
        Lb.Position = [([xy(1),xy(3)] - [2,2])./[7,3]+[2 2]  0.2  0.2];
        Rb.Position = [([xy(1),xy(3)] - [5,2])./[7,3]+[5 2]  0.2  0.2];
    end
end



쫓아 왔습니다!
끝!

그런데, 원래 Xeyes 란 무엇일까・・・



Linux의 동작 체크에 밖에 사용한 적이 없지만, 조사해 보면 30년 정도 전의 고전 프로그램이군요.
htps : // 그럼.ぃきぺぢ아. 오 rg / ぃき / ぇ ぇ s

좋은 웹페이지 즐겨찾기