点击上方蓝字和“好玩的MATLAB”一起快乐玩耍吧!
K3 x3 O: b4 y( g6 q* H/ e
iphcevcdx4l64012779318.jpg
0 E# S$ R |( x" j5 {2 G8 `好玩的matlab
' n- b5 h$ s7 l& V. |( y带你解锁不一样的matlab新玩法 o; A" t; [* V# y; w: \. M
" \, f" M7 b9 s8 P3 j今天介绍一下怎么利用Matlab制作圣诞节专属头像,喜欢此推文的小伙伴们记得点赞+关注+分享!【尊重作者劳动成果,转载请注明推文链接和公众号名】
8 Q8 ?- t/ q0 ?8 G效果图& [" T) P, C, K x' h: F( Z/ m
m2exeqhofys64012779418.png
a7 ?# \6 t7 j2 J7 I& R @0 i
bcynzk2yhia64012779519.gif
9 r2 J5 X& J6 T. u* d0 Q5 {. X( s3 F! q1 m
程序介绍
0 `9 d9 c" `/ L主界面( y2 G% B# w T' I! c5 D8 Z
function addHatmFig = figure('units', 'pixels', 'position', [400 300 400 600], ... 'Numbertitle', 'off', 'menubar', 'none', 'resize', 'on', ... 'name', '公众号:好玩的Matlab');axes('parent', mFig, 'position', [0 0 1 1], ... 'XLim', [0 400], ... 'YLim', [-200 400], ... 'NextPlot', 'add', ... 'YDir', 'reverse', ... 'XTick', [], ... 'YTick', [],... 'layer', 'bottom', ... 'Visible', 'on');[avatar, ~, ~] = imread('tx1.jpg');[decorImg, ~, alphaImg] = imread('./img/2.png');ImgResult=image([0 400], [0 400], avatar);添加帽子hatPos = [200, 40];[n, m, ~] = size(decorImg);enlarge=0.08;DrawHatHdl = image([hatPos(1) - m* enlarge hatPos(1) + m* enlarge], ... [hatPos(2) - n* enlarge hatPos(2) + n* enlarge], decorImg, 'AlphaData', alphaImg);DrawHatHdl.HitTest = 'on';鼠标监听代码set(gcf,'WindowButtonDownFcn', @clickBoat); function clickBoat(~, ~) clickType = get(gcf, 'SelectionType'); XY = get(gca, 'CurrentPoint'); if strcmp(clickType, 'normal') Y = XY(1, 2); X = XY(1, 1); set(DrawHatHdl, 'XData', [X - m* enlarge X + m* enlarge], 'YData', [Y - n* enlarge Y + n* enlarge]); elseif strcmp(clickType, 'alt') Y = XY(1, 2); X = XY(1, 1); enlarge=enlarge*1.1; set(DrawHatHdl, 'XData', [X - m*enlarge X + m*enlarge], 'YData', [Y - n*enlarge Y + n*enlarge]); end endend# @# V x2 C- Y, z: ^
操作方法:鼠标右击放大帽子鼠标左击移动帽子位置全部代码
0 O6 A2 D( ^" \$ } X: t$ s9 Rfunction addHatmFig = figure('units', 'pixels', 'position', [400 300 400 600], ... 'Numbertitle', 'off', 'menubar', 'none', 'resize', 'on', ... 'name', '公众号:好玩的Matlab');axes('parent', mFig, 'position', [0 0 1 1], ... 'XLim', [0 400], ... 'YLim', [-200 400], ... 'NextPlot', 'add', ... 'YDir', 'reverse', ... 'XTick', [], ... 'YTick', [],... 'layer', 'bottom', ... 'Visible', 'on');[avatar, ~, ~] = imread('tx1.jpg');[decorImg, ~, alphaImg] = imread('./img/2.png');ImgResult=image([0 400], [0 400], avatar);hatPos = [200, 40];[n, m, ~] = size(decorImg);enlarge=0.08;DrawHatHdl = image([hatPos(1) - m* enlarge hatPos(1) + m* enlarge], ... [hatPos(2) - n* enlarge hatPos(2) + n* enlarge], decorImg, 'AlphaData', alphaImg);DrawHatHdl.HitTest = 'on';
7 g: ?+ n9 C0 x$ v5 |8 e+ T! x. zset(gcf,'WindowButtonDownFcn', @clickBoat); function clickBoat(~, ~) clickType = get(gcf, 'SelectionType'); XY = get(gca, 'CurrentPoint'); if strcmp(clickType, 'normal') Y = XY(1, 2); X = XY(1, 1); set(DrawHatHdl, 'XData', [X - m* enlarge X + m* enlarge], 'YData', [Y - n* enlarge Y + n* enlarge]); elseif strcmp(clickType, 'alt') Y = XY(1, 2); X = XY(1, 1); enlarge=enlarge*1.1; set(DrawHatHdl, 'XData', [X - m*enlarge X + m*enlarge], 'YData', [Y - n*enlarge Y + n*enlarge]); end endend
- Z% F/ x5 r, b! N! o: \0 ~9 N
bdotgo2n01l64012779619.png
; l7 X* ^( A! V2 [% P6 h
* k5 Q8 g, `- i! b% }( \; ^
小编根据原理又做了APP操作界面. H( V' [9 _, b+ o) f |
vwx3xgpglio64012779719.png
& {+ v4 ?$ |; {0 F( ?- y# c: m3 r( ~- @8 o( z( k
- -THE END- -/ z& t9 i7 i* z
1 r( f/ |+ _: m, a, \( Y
源码下载:gitee下载:https://gitee.com/LoveMatlab/addHat
. r1 U3 k* k! f& z8 j
d4ps5sdrjbr64012779819.png
( W8 G0 ^- f, s7 W. |: U% U+ x
% \$ W! T: T# l# u9 n( j0 {
QQ 群下载:) w. F- z" L% O! R2 A; c3 e
zojtf4ggu0f64012779919.png
2 f/ {8 ?1 B, R& ~2 N7 |3 p
# M6 {( P6 g* D+ T* J参考资料:
8 z5 H r7 u8 Y% K【1】https://slandarer.blog.csdn.net/article/details/118368777【2】https://mp.weixin.qq.com/s/mRIImZK-bLJWrZwVtkrhfw |