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.hqwc.cn/news/520734.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS (一)ArkTS起源及UI框架

目录 1 引言 2 框架 3 ArkUI 4 特点 5 总结 1 引言 Mozilla创造了JS&#xff0c;Microsoft创建了TS&#xff0c;Huawei进一步推出了ArkTS。 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript&#xff08;简称TS&#xff09;的基础上&#xff0c;扩展了声明式UI、…

WPF —— Border、Frame控件详解

一&#xff1a;Border控件 1.Border介绍 Border&#xff08;边框&#xff09;是一个装饰的控件&#xff0c;此控件绘制一个边框、一个背景。用border标签包括目标标签。 不能有多个子元素&#xff0c;要想有多个子元素&#xff0c;多个子元素放在一个父元素下。或者放到grid标…

备忘 clang diagnostic 类的应用示例 ubuntu 22.04

系统的ncurses环境有些问题 通过源码安装了ncurses6.3后&#xff0c;才可以在 llvmort-18.1.rc4中编译通过示例&#xff1a; 1&#xff0c;折腾环境 ncurses-6.3$ ./configure ncurses-6.3$ make -j ncurses-6.3$ sudo make install sudo apt install libtinfo5 sudo…

『运维备忘录』之 iptables 防火墙使用指南

前言 iptables 是一个配置 Linux 内核防火墙的命令行工具&#xff0c;它是用来设置、维护和检查Linux内核的IP包过滤规则的。本文将介绍 iptables 的基础知识和使用示例。 注意&#xff1a;红帽/红旗/CentOS等 7 版本以上已改为使用 firewalld 作为防火墙替换iptables。 一、基…

基于亚马逊云科技新功能:Amazon SageMaker Canvas 无代码机器学习—以构建货物的交付状态检测模型实战为例深度剖析以突显其特性

授权说明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在亚马逊云科技开发者社区、 知乎、自媒体平台、第三方开发者媒体等亚马逊云科技官方渠道。 亚马逊云科技 2023 re:Invent 全球大会是亚马逊云科技举办的一场技术盛会&#xff0c;…

项目解决方案:视频监控接入和录像系统设计方案(上)

目 录 1.概述 2. 建设目标及需求 2.1建设总目标 2.2 需求描述 2.3 需求分析 3.设计依据与设计原则 3.1设计依据 3.2 设计原则 &#xff08;1&#xff09;、先进性与适用性 &#xff08;2&#xff09;、经济性与实用性 &#xff08;3&#xff09;、可靠性与…

centos离线安装 k8s (实操可用)

全部安装包rpm下载&#xff08;已整理好k8s和docker&#xff09;&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1ATv8BPijhvIKWz4hMnkx6Q?pwdt5db 提取码&#xff1a;t5db 将文件下载以后&#xff0c;解压到服务器 #执行所有docker-rpm包 yum -y localinstall *.rpm…

Java面试(4)之 Spring Bean生命周期过程

一, 整个加载的完整链路图 更详细的生命周期函数链路图(仅供参考) 二, Bean实例化的四种方式: 1, 无参构造器(默认且常用)6 2, 静态工厂方法方式(factory-method指定实例化的静态方法) 3, 实例工厂方法方式(factory-bean指定bean的name,factory-method指定实例化方法) 4, 实…

NineData与OceanBase完成产品兼容认证,共筑企业级数据库新生态

近日&#xff0c;云原生智能数据管理平台 NineData 和北京奥星贝斯科技有限公司的 OceanBase 数据库完成产品兼容互认证。经过严格的联合测试&#xff0c;双方软件完全相互兼容、功能完善、整体运行稳定且性能表现优异。 此次 NineData 与 OceanBase 完成产品兼容认证&#xf…

3.7作业

一 1&#xff09;应用层 负责处理不同应用程序之间的通信&#xff0c;需要满足提供的协议&#xff0c;确保数据发送方和接收方的正确 应用层提供的协议&#xff1a; &#xff08;2&#xff09;表示层 负责网络中通信的数据的编码和格式&#xff0c;确保通信过程中…

【Proteus仿真】【STM32单片机】井盖安全检测装置设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用LCD1602液晶显示模块、WIFI模块、蜂鸣器、LED按键、ADC PCF8591、角度/可燃气检测传感器等。 主要功能&#xff1a; 系统运行后&#xff0c;LC…

C# 由左上、右下两个坐标点计算矩形的长、宽以及两点的距离

一、计算长、宽 直接使用坐标点计算 // 定义矩形左上角和右下角的坐标 Point topLeft new Point(0, 0); Point bottomRight new Point(5, 10); // 计算矩形的长和宽 int width bottomRight.X - topLeft.X;//矩形宽度 int height bottomRight.Y - topLeft.Y;//矩形高度或是…