520还在画玫瑰?教你用MATLAB画个玫瑰花球|实时焦点
效果如下:
(资料图片仅供参考)
原理
玫瑰绘制
要画花球我们要先会绘制一朵花: 如何画一朵花可以看看这篇:MATLAB 3D玫瑰花绘制
三维坐标变化
主要用下面的坐标变化方法:
正十二面体球
想像这里有一个正十二面体球,我们把每一面放上一朵花,也就是说每两朵花之间夹角是pi-acos(-1/sqrt(5)),我们可以通过多次x轴旋转和多次z轴旋转将每朵花放到合适的角度
完整代码
function roseBallclear;clc%曲面数据计算%==========================================================================[x,t]=meshgrid((0:24)./24,(0:0.5:575)./575.*20.*pi+4*pi);p=(pi/2)*exp(-t./(8*pi));change=sin(15*t)/150;u=1-(1-mod(3.6*t,2*pi)./pi).^4./2+change;y=2*(x.^2-x).^2.*sin(p);r=u.*(x.*sin(p)+y.*cos(p));h=u.*(x.*cos(p)-y.*sin(p));%颜色映射表%==========================================================================hMap=(h-min(min(h)))./(max(max(h))-min(min(h)));col=size(hMap,2);colorList=[0.0200 0.0400 0.3900 0 0.0900 0.5800 0 0.1300 0.6400 0.0200 0.0600 0.6900 0 0.0800 0.7900 0.0100 0.1800 0.8500 0 0.1300 0.9600 0.0100 0.2600 0.9900 0 0.3500 0.9900 0.0700 0.6200 1.0000 0.1700 0.6900 1.0000];% colorList=[0.2100 0.0900 0.3800% 0.2900 0.0700 0.4700% 0.4000 0.1100 0.4900% 0.5500 0.1600 0.5100% 0.7500 0.2400 0.4700% 0.8900 0.3200 0.4100% 0.9700 0.4900 0.3700% 1.0000 0.5600 0.4100% 1.0000 0.6900 0.4900% 1.0000 0.8200 0.5900% 0.9900 0.9200 0.6700% 0.9800 0.9500 0.7100];colorFunc=colorFuncFactory(colorList);dataMap=colorFunc(hMap");colorMap(:,:,1)=dataMap(:,1:col);colorMap(:,:,2)=dataMap(:,col+1:2*col);colorMap(:,:,3)=dataMap(:,2*col+1:3*col); function colorFunc=colorFuncFactory(colorList) xx=(0:size(colorList,1)-1)./(size(colorList,1)-1); y1=colorList(:,1);y2=colorList(:,2);y3=colorList(:,3); colorFunc=@(X)[interp1(xx,y1,X,"linear")",interp1(xx,y2,X,"linear")",interp1(xx,y3,X,"linear")"]; end%曲面旋转及绘制%==========================================================================surface(r.*cos(t),r.*sin(t),h+0.35,"EdgeAlpha",0.05,... "EdgeColor",[0 0 0],"FaceColor","interp","CData",colorMap)hold onsurface(r.*cos(t),r.*sin(t),-h-0.35,"EdgeAlpha",0.05,... "EdgeColor",[0 0 0],"FaceColor","interp","CData",colorMap)Xset=r.*cos(t);Yset=r.*sin(t);Zset=h+0.35;yaw_z=pi*72/180;roll_x=pi-acos(-1/sqrt(5));R_z_2=[cos(yaw_z),-sin(yaw_z),0; sin(yaw_z),cos(yaw_z),0; 0,0,1];R_z_1=[cos(yaw_z/2),-sin(yaw_z/2),0; sin(yaw_z/2),cos(yaw_z/2),0; 0,0,1];R_x_2=[1,0,0; 0,cos(roll_x),-sin(roll_x); 0,sin(roll_x),cos(roll_x)]; [nX,nY,nZ]=rotateXYZ(Xset,Yset,Zset,R_x_2);surface(nX,nY,nZ,"EdgeAlpha",0.05,..."EdgeColor",[0 0 0],"FaceColor","interp","CData",colorMap)for k=1:4 [nX,nY,nZ]=rotateXYZ(nX,nY,nZ,R_z_2); surface(nX,nY,nZ,"EdgeAlpha",0.05,... "EdgeColor",[0 0 0],"FaceColor","interp","CData",colorMap)end [nX,nY,nZ]=rotateXYZ(nX,nY,nZ,R_z_1);for k=1:5 [nX,nY,nZ]=rotateXYZ(nX,nY,nZ,R_z_2); surface(nX,nY,-nZ,"EdgeAlpha",0.05,... "EdgeColor",[0 0 0],"FaceColor","interp","CData",colorMap)end %-------------------------------------------------------------------------- function [nX,nY,nZ]=rotateXYZ(X,Y,Z,R) nX=zeros(size(X)); nY=zeros(size(Y)); nZ=zeros(size(Z)); for i=1:size(X,1) for j=1:size(X,2) v=[X(i,j);Y(i,j);Z(i,j)]; nv=R*v; nX(i,j)=nv(1); nY(i,j)=nv(2); nZ(i,j)=nv(3); end end end%axes属性调整%==========================================================================ax=gca;grid onax.GridLineStyle="--";ax.LineWidth=1.2;ax.XColor=[1,1,1].*0.4;ax.YColor=[1,1,1].*0.4;ax.ZColor=[1,1,1].*0.4;ax.DataAspectRatio=[1,1,1];ax.DataAspectRatioMode="manual";ax.CameraPosition=[-6.5914 -24.1625 -0.0384];end
另: 补两张古早之前做的折纸花球:
我好像在诡异配色的道路上越走越远了。。。其实后面第二种配色还可以不是嘛 。。。 配色1:配色2:配色3:配色4:配色4的数据上下颠倒是这样的:
这几种颜色大家可以试试看,我真的尽力了。。。。 颜色数据:
colorList1=[0.2000 0.0800 0.4300 0.2000 0.1300 0.4600 0.2000 0.2100 0.5000 0.2000 0.2800 0.5300 0.2000 0.3700 0.5800 0.1900 0.4500 0.6200 0.2000 0.4800 0.6400 0.1900 0.5400 0.6700 0.1900 0.5700 0.6900 0.1900 0.7500 0.7800 0.1900 0.8000 0.8100];colorList2=[0.1300 0.1000 0.1600 0.2000 0.0900 0.2000 0.2800 0.0800 0.2300 0.4200 0.0800 0.3000 0.5100 0.0700 0.3400 0.6600 0.1200 0.3500 0.7900 0.2200 0.4000 0.8800 0.3500 0.4700 0.9000 0.4500 0.5400 0.8900 0.7800 0.7900];colorList3=[0.3200 0.3100 0.7600 0.3800 0.3400 0.7600 0.5300 0.4200 0.7500 0.6400 0.4900 0.7300 0.7200 0.5500 0.7200 0.7900 0.6100 0.7100 0.9100 0.7100 0.6800 0.9800 0.7600 0.6700];colorList4=[0.9500 0.2300 0.6600 0.7500 0.2100 0.6000 0.6200 0.2000 0.5700 0.4500 0.1800 0.5200 0.3200 0.2100 0.5200 0.2700 0.3100 0.6000 0.2500 0.3600 0.6400 0.1900 0.4800 0.7400];
后注:两个面夹角为pi-acos(-1/sqrt(5)),同平面旋转为了五等分要转72度,因而yaw_z,和roll_x取值并不相同,代码和原文描述已经做出相应更改。
标签:
相关推荐:
- []520还在画玫瑰?教你用MATLAB画个玫瑰花球|实时焦点
- []联想USB 3.0扩展坞29元限时秒:4个USB接口 支持Type-C供电-世界热点
- []苹果新一代显示器来了:屏幕升级为mini LED
- []NVIDIA CES新品发布会官宣:RTX 4070 Ti、RTX 40笔记本显卡要来了:热门看点
- []性价比还得看AMD 6核锐龙+显卡+主板套装1239元:当前要闻
- []环球快消息!ZOL科技早餐:骁龙8 Gen2新机2999元,魅族19外观将揭晓
- []96核心192线程!AMD Zen4线程撕裂者7000将至 当前速递
- []冬日特别福利!即刻上手领取你的穿越火线限定礼包吧:今日热讯
最新新闻:
- 520还在画玫瑰?教你用MATLAB画个玫瑰花球|实时焦点
- 神谷英树将《猎天使魔女:起源》比作童心绘本-全球播报
- IPO大潮退去,美股繁盛时期上市的大批股票现在面临退市风险
- 《碟中谍7》官方幕后花絮:阿汤哥太拼 3000米飞车跳崖|全球快播报
- 苹果新一代显示器来了:屏幕升级为mini LED
- 卡梅隆封神往事:一个天才疯子和《阿凡达》的20年_世界实时
- Steam喜加一:圣诞主题像素排球游戏《Jollyball》
- NVIDIA CES新品发布会官宣:RTX 4070 Ti、RTX 40笔记本显卡要来了:热门看点
- 热门看点:币安将以10.22亿美元的价格收购加密货币借贷平台Voyager的资产
- 环球快消息!ZOL科技早餐:骁龙8 Gen2新机2999元,魅族19外观将揭晓
- 联想USB 3.0扩展坞29元限时秒:4个USB接口 支持Type-C供电-世界热点
- 性价比还得看AMD 6核锐龙+显卡+主板套装1239元:当前要闻
- 《水浒风云传》确定12月22日登陆Xbox和Switch 天天观速讯
- 【天天新视野】《原神》剧情视频「秋津羽戏」讲述人与妖的友情
- 高手用虚幻5做出《刺客信条》粉丝最期待的游戏功能
- 三强联手:Steam与苹果正式加盟特斯拉_天天短讯
- 马斯克狂卖特斯拉股票:三天套现250+亿人民币
- 环球时讯:CES 2023 多家电脑厂商预热新款大屏游戏本
- 96核心192线程!AMD Zen4线程撕裂者7000将至 当前速递
- 冬日特别福利!即刻上手领取你的穿越火线限定礼包吧:今日热讯
- 姆巴佩决赛失利首度发声:我们会回来的! 每日观点
- 【世界独家】艰难的阿根廷,比梅西更需要这座大力神杯
- ARPG《致命躯壳:完整版》推出Switch版|当前视讯
- Epic喜加一:《小马格斗》免费领取
- 美国国防部:没有任何证据显示UFO与外星人有关 今日讯
- Epic Games支付5.2亿美元以解决侵犯儿童隐私问题
- 《模拟人生4》玩家合计游戏时长达14亿小时_环球讯息
- 【天天热闻】《装甲核心6:境界天火》不会包含战役合作模式
- 【爆料】英特尔 i5-13400 评测流出:6 大核 4 小核,性能接近 i5-12600K
- 每日讯息!旺旺因虚假广告被罚:宣传称富含蛋白质实际不达标
- 这一百多年前的病,喜来乐也治不好|环球实时
- 世界看热讯:《巫师3》PC版热修复补丁已发布 提高稳定性和性能
- IGN评选游戏史上销量最高TOP10 《大镖客2》第十_环球观热点
- 手工耿自制多功能硬核鱼竿:外形似大狙 还能放风筝 天天时讯
- 为何小米 13 Pro 不是直屏?雷军解释:做成直屏会太厚
- 《英雄传说:创之轨迹》明年7月7日登陆欧美 新预告公开:动态
- 【新品】ROG 发布白色版 RTX 4090 / 4080 猛禽显卡
- 小米年底裁员?内部人士:确有其事 规模不大、补偿政策为N+2
- 业界人士分析《宝可梦》动画换主角:功成身退顺其自然
- 这个由AI生成的《黑暗之魂》电影版让我们眼前一亮
- 《阿凡达2:水之道》M站用户评分7.1:特效很棒 剧情稀烂
- SE手游新作《王国之心 Missing-Link》明年1月开启测试 新视觉图释出|世界消息
- 《FIFA 23》登顶2022年英国圣诞节零售榜
- 百事通!曾客串《复联4》的《阿凡达2》小演员谈卡梅隆:他像父亲一样
- 《巫师3》Steam 24小时在线峰值接近9万|焦点速看
- 57.5%赞成!马斯克或将卸任Twitter CEO
- 索尼《蜘蛛侠》宇宙将拍反派催眠骗子
- 疫苗巨头打起了mRNA专利争夺战:环球热消息
- 天天热文:小岛工作室1:1 Ludens雕塑落成 官方发布幕后视频
- 【世界聚看点】印度航空要起飞?“摔机大王”不答应
- 日本小哥用硬纸壳做克劳德摩托:超拉风堪称最靓的仔
- 天天热文:小岛工作室1:1 Ludens雕塑落成 官方发布幕后视频
- CES 2023:宏碁新一代笔记本将于1月4日发布
- 当前滚动:魅族19外观一览,最终设计即将揭晓
- 焦点信息:基辛格:俄乌是时候谈判了,避免第三次世界大战
- 大力神杯,能被阿根廷带回国吗?_世界热推荐
- 类银河城独立游戏《武士之灵 The Spirit of the Samurai》新演示 可爱猫咪遭遇恐怖生物|环球快消息
- 世界杯阿根廷夺冠:广汽三菱、网易等多家中国公司赢麻了
- 世界聚焦:Steam冬季促销即将开启 精品折扣游戏推荐
- 满功耗GeForce RTX 3060护航 华硕天选3锐龙版游戏表现更上一层楼
- 全球观天下!网传小米年底大裁6000人 内部人士出面辟谣
- “家居生态联盟”发起成立,容声构建家居美学新生态_今热点
- 性能强悍大内存是基础!这三款千元机闭眼入_每日视点
- 2022年,最能打的工业元宇宙企业都有谁?工业元宇宙排行TOP50发布_环球今日讯
- 克里斯蒂安·贝尔:不介意以其他角色身份重回MCU_环球聚看点
- 阿根廷队三星冠军T恤5秒售罄 多次紧急补货均被抢光-聚焦
- 连锁面馆为什么没有开出“中国肯德基”?
- 焦点讯息:好评如潮《战神4》新史低167元|《影子战术》仅1折
- 玩家用Mod重做《魔兽3重制版》 实现最初预告片效果
- 每日速读!桥本环奈主演《黑色夜晚大游行》电影新剧照 12月23日上映
- Win11桌面化身“白板” 允许用户自行绘制桌面贴纸
- 你达标了吗?我国成年人均纸质书阅读4.76本 仅小学生的1/3
- AMD RX7900被吐槽空气卡:用户重回N卡阵营!真香 环球短讯
- 2022游戏安全行业峰会成功举办!《2022游戏安全白皮书》发布
- 今日观点!添可芙万Steam2.0专治重油重污 140℃高温蒸汽直喷地面
- 荣耀80 GT成三体动画官方指定产品 突破性能封锁
- UR机器人关键的6大系统技术解说
- 心系天下三星W23 | W23 Flip 格调之外 自有主张_观点
- 硅料降价后,HJT明年预期有何变化?丨见智研究
- “末代皇后”婉容悲惨的一生
- 《极品飞车22:不羁》明年一月迎来更新 扩展社交游戏功能
- 大罗祝贺梅西:巴西人都为你加油 梅西让人放下仇恨
- 努比亚Z50发布:搭载骁龙8Gen2 2999元起售!
- 天天微头条丨《海岛大亨6》等9款游戏 将于12月31日退出XGP
- 世界聚焦:《三体》动画第3集遭大量差评 网友直呼太烂退钱