电子产业一站式赋能平台

PCB联盟网

搜索
查看: 109|回复: 0
收起左侧

MATLAB|制作圣诞节专属头像

[复制链接]

210

主题

210

帖子

1678

积分

三级会员

Rank: 3Rank: 3

积分
1678
发表于 2023-12-22 21:49:00 | 显示全部楼层 |阅读模式
点击上方蓝字和“好玩的MATLAB”一起快乐玩耍吧!

rgwgyl3xicg6408488449.jpg

rgwgyl3xicg6408488449.jpg

好玩的matlab
带你解锁不一样的matlab新玩法

今天介绍一下怎么利用Matlab制作圣诞节专属头像,喜欢此推文的小伙伴们记得点赞+关注+分享!【尊重作者劳动成果,转载请注明推文链接和公众号名】
效果图

m0wqk3gr5bf6408488550.png

m0wqk3gr5bf6408488550.png


jlop4kz4fbf6408488651.gif

jlop4kz4fbf6408488651.gif


程序介绍
主界面
  • 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
    操作方法:
  • 鼠标右击放大帽子
  • 鼠标左击移动帽子位置全部代码
  • 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

    muhydcmglqi6408488751.png

    muhydcmglqi6408488751.png


    小编根据原理又做了APP操作界面

    rvd42rgm3mu6408488851.png

    rvd42rgm3mu6408488851.png


    - -THE END- -

    源码下载:gitee下载:https://gitee.com/LoveMatlab/addHat

    obnm3uml3cd6408488951.png

    obnm3uml3cd6408488951.png


    QQ 群下载:

    tdpoiv1fpe56408489052.png

    tdpoiv1fpe56408489052.png


    参考资料:
    【1】https://slandarer.blog.csdn.net/article/details/118368777【2】https://mp.weixin.qq.com/s/mRIImZK-bLJWrZwVtkrhfw
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表