金曜の夕方はやる気が出ない。
誰かに見られてたらやる気が出るかもしれない!ということで、あいつの出番ですね。
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年くらい前の古典プログラムですね。
https://ja.wikipedia.org/wiki/Xeyes