Python和Matlab怎么实现炫酷的3D旋转图
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容主要讲解"Python和Matlab怎么实现炫酷的3D旋转图",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python和Matlab怎么实现炫酷的
千家信息网最后更新 2025年11月07日Python和Matlab怎么实现炫酷的3D旋转图
本篇内容主要讲解"Python和Matlab怎么实现炫酷的3D旋转图",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python和Matlab怎么实现炫酷的3D旋转图"吧!
1.Python爬取美女照片
1.1 留恋忘返的网址
站长素材-分享综合设计素材的平台 (chinaz.com)
1.2 Python代码
#~~~~欢迎关注公众号:电力系统与算法之美~~~~~~~~~~~~· #~~~~~~~~~导入相关库~~~~~~~~~~~~~~~~~~~~·import urllib.requestfrom lxml import etree #~~~~~~~~~1.请求对象的定制~~~~~~~~~~~~~~~~~def create_request(page): if (page == 1): url = 'https://sc.chinaz.com/tag_tupian/YaZhouMeiNv.html' else: url = 'https://sc.chinaz.com/tag_tupian/yazhoumeinv_' + str(page) + '.html' # print(url) headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36' } request = urllib.request.Request(url=url, headers=headers) return request #~~~~~~~~~~~2.获取网页的源码~~~~~~~~~~~~~~~~~~~~~def get_content(request): response = urllib.request.urlopen(request) content = response.read().decode('utf-8') return content #~~~~~~~~~~~~~~~~~~~3.下载图片~~~~~~~~~~~~~~~~~~~~~~~~~~def down_img(content): # 下载文件格式:urllib.request.urlretrieve('图片地址','文件的名字') tree = etree.HTML(content) name_list = tree.xpath('//div[@id = "container"]//a/img/@alt') # 一般涉及到图片的网站,都会进行懒加载,要把src换成src2(懒加载时,src会以src2出现) src_list = tree.xpath('//div[@id = "container"]//a/img/@src2') # print(len(name_list)) # print(len(src_list)) for i in range(len(name_list)): name = name_list[i] src = src_list[i] url = 'https:' + src url = url.replace('_s', '') urllib.request.urlretrieve(url=url, filename='./meinv/' + name + '.jpg') #~~~~~~~~~运行~~~~~~~~~~~~~~~if __name__ == '__main__': start_page = int(input('请输入起始页码:')) end_page = int(input('请输入终止页码:')) for page in range(start_page, end_page + 1): #~~~~1.定制请求对象~~~~~ request = create_request(page) #~~~~2.获取网页源码~~~~~ content = get_content(request) #~~~~~3.解析源码并下载图片~~~ down_img(content)1.3 结果
温馨提示:meinv这个文件夹是提前建立的。
2.Python实现
2.1 条件准备
由1中爬取的照片,我们就可以为接下来的事做准备啦。选取十二张照片,如图:
2.2 运行展示
运行出来比下面这个还炫酷:
2.3 Python实现
CSS3制作3D图片立方体旋转特效 ![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
3.Matlab实现
3.1 运行展示
动态视频:
3.2 Matlab代码
%====欢迎关注关注号:电力系统与算法之美function wlz3dpath='.\meinv\';%文件夹名称files=dir(fullfile(path,'*.jpg')); picNum=size(files,1); %% 遍历路径下每一幅图像for i=1:picNum fileName=strcat(path,files(i).name); img=imread(fileName); img=imresize(img,[120,120]); imgSet{i}=img;end %% fig axes设置fig=figure('units','pixels','position',[50 50 600 600],... 'Numbertitle','off','resize','off',... 'name','album3d','menubar','none');ax=axes('parent',fig,'position',[-0.5 -0.5 2 2],... 'XLim', [-6 6],... 'YLim', [-6 6],... 'ZLim', [-6 6],... 'Visible','on',... 'XTick',[], ... 'YTick',[],... 'Color',[0 0 0],... 'DataAspectRatioMode','manual',... 'CameraPositionMode','manual');hold(ax,'on')ax.CameraPosition=[5 5 5]; %% 用于绘制图片的网格[XMesh,YMesh]=meshgrid(linspace(-1,1,120),linspace(-1,1,120));ZMesh=ones(120,120); %% 绘制图片立方体surfPic(1)=surf(XMesh,YMesh,ZMesh,'CData',imgSet{mod(0,picNum)+1},'EdgeColor','none','FaceColor','interp');surfPic(2)=surf(XMesh,YMesh(end:-1:1,:),-ZMesh,'CData',imgSet{mod(1,picNum)+1},'EdgeColor','none','FaceColor','interp');surfPic(3)=surf(ZMesh,XMesh,YMesh(end:-1:1,:),'CData',imgSet{mod(2,picNum)+1},'EdgeColor','none','FaceColor','interp');surfPic(4)=surf(XMesh,ZMesh,YMesh(end:-1:1,:),'CData',imgSet{mod(3,picNum)+1},'EdgeColor','none','FaceColor','interp');surfPic(5)=surf(-ZMesh,XMesh,YMesh(end:-1:1,:),'CData',imgSet{mod(4,picNum)+1},'EdgeColor','none','FaceColor','interp');surfPic(6)=surf(XMesh,-ZMesh,YMesh(end:-1:1,:),'CData',imgSet{mod(5,picNum)+1},'EdgeColor','none','FaceColor','interp'); %% 依靠小立方体数据绘制中等立方体for i=1:6 surfPicA(i)=surf(surfPic(i).XData.*1.5,surfPic(i).YData.*1.5,surfPic(i).ZData.*1.5,... 'CData',surfPic(i).CData,'EdgeColor','none','FaceColor','interp','FaceAlpha',0.7); end %% 用来调整放大比例的矩阵resizeMat=[2 2 2.5;2 2 2.5;2.5 2 2; 2 2.5 2;2.5 2 2;2 2.5 2]; %% 最大图片绘制 % for i=1:6% surfPicB(i)=surf(surfPic(i).XData.*resizeMat(i,1),...% surfPic(i).YData.*resizeMat(i,2),...% surfPic(i).ZData.*resizeMat(i,3),...% 'CData',surfPic(i).CData,'EdgeColor',...% 'none','FaceColor','interp','FaceAlpha',0.7); % end lastDis=300;preDis=300;set(fig,'WindowButtonMotionFcn',@move2center) function move2center(~,~) xy=get(fig,'CurrentPoint'); preDis=sqrt(sum((xy-[300,300]).^2)); end fps=40;theta=0;rotateTimer=timer('ExecutionMode', 'FixedRate', 'Period',1/fps, 'TimerFcn', @rotateCube);start(rotateTimer) function rotateCube(~,~) theta=theta+0.02; ax.CameraPosition=[cos(theta)*5*sqrt(2),sin(theta)*5*sqrt(2),5]; if (~all([preDis lastDis]<150))&&any([preDis lastDis]<150) for ii=1:6 if preDis<150 surfPicA(ii).XData=surfPic(ii).XData.*resizeMat(ii,1); surfPicA(ii).YData=surfPic(ii).YData.*resizeMat(ii,2); surfPicA(ii).ZData=surfPic(ii).ZData.*resizeMat(ii,3); else surfPicA(ii).XData=surfPic(ii).XData.*1.5; surfPicA(ii).YData=surfPic(ii).YData.*1.5; surfPicA(ii).ZData=surfPic(ii).ZData.*1.5; end end end lastDis=preDis; end % 弃用方案:太卡% set(fig,'WindowButtonMotionFcn',@move2center) % function move2center(~,~)% xy=get(fig,'CurrentPoint');% dis=sum((xy-[300,300]).^2);% for ii=1:6% if dis<200% surfPicA(ii).XData=surfPic(ii).XData.*resizeMat(ii,1);% surfPicA(ii).YData=surfPic(ii).YData.*resizeMat(ii,2);% surfPicA(ii).ZData=surfPic(ii).ZData.*resizeMat(ii,3);% else% surfPicA(ii).XData=surfPic(ii).XData;% surfPicA(ii).YData=surfPic(ii).YData;% surfPicA(ii).ZData=surfPic(ii).ZData;% end % end% % % % end end到此,相信大家对"Python和Matlab怎么实现炫酷的3D旋转图"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
图片
文件
立方体
运行
源码
照片
代码
内容
对象
文件夹
电力
电力系统
算法
系统
素材
网站
网页
页码
之美
准备
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海高程网络技术
服务器设置管理口地址
交通监控服务器维护方案
it软件开发维护平台
涉外维保网络安全协议
威海微信小程序软件开发推荐
ftp代理服务器软件
数据库局部变量的表示方法
安溪县天桥网络技术
我的世界最安全的服务器
沛县软件开发项目
数据库管理员有年龄限制吗
深信服的网络安全工程师认证
服务器监测失败怎么回事
h5服务器是什么
sno在数据库中为什么
代码服务器安全
磊科路由虚拟服务器设置
游戏数据统计数据库
网络安全展 有感
泉州 软件开发 前景
小黑网络技术教程视频
苏州智搜网络技术有限公司
存储服务器维修费用清单
第九章网络安全思维导图
软件开发流程管理基础知识
数据库产品作用
钉钉服务器型号
英雄联盟服务器一直显示测速中
服务器查看网络断开记录