当前位置: 首页 > news >正文

MATLAB | MATLAB版玫瑰祝伟大女性节日快乐!!

妇女节到了,这里祝全体伟大的女性,节日快乐,事业有成,万事胜意。

作为MATLAB爱好者,这里还是老传统画朵花叭,不过感觉大部分样式的花都画过了,这里将一段很古老的2012年的html玫瑰花代码转成MATLAB版本

html版本代码出自:

  • http://www.romancortes.com/blog/1k-rose/

网站有代码详细原理,可以去瞅一眼:

完整代码

MATLAB代码也不是很长:

function htmlRose
f = 500;
h = -250;
ax                 = gca;
ax.NextPlot        = 'add';
ax.DataAspectRatio = [1,1,1];
ax.YDir            = 'reverse';
ax.XColor          = 'none';
ax.YColor          = 'none';
function V = calc(a, b, c)
if c > 60 V.x = sin(a.*7).*(13+5./(.2+power(b.*4, 4)))-sin(b).*50;V.y = b.*f+50;V.z = 625+cos(a.*7).*(13+5./(.2+power(b.*4, 4)))+b.*400;V.r = a-b./2;V.g = a;
elseA = a.*2-1;B = b.*2-1;ind = A.*A+B.*B<1;a = a(ind); b = b(ind);A = A(ind); B = B(ind);if c > 37j = double(bitand(int32(c),1));n = double(j.*6+~j.*4);o = .5./(a+.01)+cos(b.*125).*3-a.*300;w = b.*h;V.x = o.*cos(n)+w.*sin(n)+j.*610-390;V.y = o.*sin(n)-w.*cos(n)+550-j.*350;V.z = 1180+cos(B+A).*99-j.*300;V.r = .4-a.*.1+power(1-B.*B, -h.*6).*.15-a.*b.*.4+cos(a+b)./5+...power(cos((o.*(a+1)+(B>0).*w-(B<=0).*w)./25), 30).*.1.*(1-B.*B);V.g = o./1e3+.7-o.*w.*3e-6;elseif c > 32c = c.*1.16-.15;o = a.*45-20;w = b.*b.*h;V.z = o.*sin(c)+w.*cos(c)+620;V.x = o.*cos(c)-w.*sin(c);V.y = 28+cos(B.*.5).*99-b.*b.*b.*60-V.z./2-h;V.r = (b.*b.*.3+power((1-(A.*A)), 7).*.15+.3).*b;V.g = b.*.7;elseo = A.*(2-b).*(80-c.*2);w = 99-cos(A).*120-cos(b).*(-h-c.*4.9)+cos(power(1-b, 7)).*50+c.*2;V.z = o.*sin(c)+w.*cos(c)+700;V.x = o.*cos(c)-w.*sin(c);V.y = B.*99-cos(power(b, 7)).*50-c./3-V.z./1.35+450;V.r = (1-b./1.2).*.9+a.*.1;V.g = power((1-b), 20)./4+.05;end
end
end
zBuffer = zeros(f,f);
for k = 1:25for i = 0:45V = calc(rand(1, 5e3), rand(1, 5e3), i./.74);z = round(V.z + 0.5);x = int32(V.x.*f./z-h + 0.5);y = int32(V.y.*f./z-h + 0.5);ind2 = y<f;x = x(ind2); y = y(ind2); z = z(ind2);V.r = V.r(ind2); V.g = V.g(ind2);zBufferIndex = y.*f+x;zBufferBool = (~zBuffer(zBufferIndex))|zBuffer(zBufferIndex)>z;zBuffer(zBufferIndex(zBufferBool)) = z(zBufferBool);RGB = [bitcmp(int32(V.r.*h));bitcmp(int32(V.g.*h));bitcmp(int32(-V.r.*V.r.*80))].';RGB(RGB<0) = 0;RGB(RGB>255) = 255;RGB = double(RGB)./255;scatter(x(zBufferBool),y(zBufferBool),5,'filled',...'CData',RGB(zBufferBool,:),'MarkerEdgeColor','none',...'MarkerFaceAlpha',.7)enddrawnow
end
end

以上已经是完整代码!


当然账号上还有一些其他的花:

玫瑰花束

https://slandarer.blog.csdn.net/article/details/132396092


玫瑰花和花球

https://slandarer.blog.csdn.net/article/details/117048623


玫瑰花

https://slandarer.blog.csdn.net/article/details/129019574


http://www.lryc.cn/news/313286.html

相关文章:

  • LVS+Keepalived 高可用集群
  • Linux:kubernetes(k8s)探针ReadinessProbe的使用(9)
  • 专题一 - 双指针 - leetcode 1089. 复写零 - 简单难度
  • 深入浅出(二)MVVM
  • 2023年第三届中国高校大数据挑战赛(第二场)A题思路
  • 数据挖掘:
  • NDK,Jni
  • Java实战:Spring Boot整合Canal与RabbitMQ实时监听数据库变更并高效处理
  • 机器学习:探索计算机的自我进化之路
  • 【Flink网络数据传输(4)】RecordWriter(下)封装数据并发送到网络的过程
  • 【牛客】VL74 异步复位同步释放
  • CSS3笔记
  • 两天学会微服务网关Gateway-Gateway工作原理
  • 备忘 clang diagnostic 类的应用示例 ubuntu 22.04
  • Git小册-笔记迁移
  • 【你也能从零基础学会网站开发】Web建站之HTML+CSS入门篇 传统布局和Web标准布局的区别
  • 005-事件捕获、冒泡事件委托
  • SpringBoot快速入门(介绍,创建的3种方式,Web分析)
  • VMwareWorkstation17.0虚拟机搭建WindowsME虚拟机(完整安装步骤详细图文教程)
  • 【Java设计模式】八、装饰者模式
  • python INI文件操作与configparser内置库
  • 软考笔记--软件系统质量属性
  • 新型设备巡检方案-手机云巡检
  • node.js 下 mysql2 的 CURD 功能极简封装
  • Cloud-Eureka服务治理-Ribbon负载均衡
  • Northwestern University-844计算机科学与技术/软件工程-机试指南【考研复习】
  • 【Linux的网络编程】
  • vue-seamless-scroll 点击事件不生效
  • 前端工程部署步骤小记
  • TS常见问题