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

2024-03-08 07:04

本文主要是介绍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


这篇关于MATLAB | MATLAB版玫瑰祝伟大女性节日快乐!!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/786373

相关文章

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

MATLAB算法实战应用案例精讲-【数模应用】三因素方差

目录 算法原理 SPSSAU 三因素方差案例 1、背景 2、理论 3、操作 4、SPSSAU输出结果 5、文字分析 6、剖析 疑难解惑 均方平方和类型? 事后多重比较的类型选择说明? 事后多重比较与‘单独进行事后多重比较’结果不一致? 简单效应是指什么? 边际估计均值EMMEANS是什么? 简单简单效应? 关于方差分析时的效应量? SPSSAU-案例 一、案例

鹅算法(GOOSE Algorithm,GOOSE)求解复杂城市地形下无人机避障三维航迹规划,可以修改障碍物及起始点(Matlab代码)

一、鹅算法 鹅优化算法(GOOSE Algorithm,GOOSE)从鹅的休息和觅食行为获得灵感,当鹅听到任何奇怪的声音或动作时,它们会发出响亮的声音来唤醒群中的个体,并保证它们的安全。 参考文献 [1]Hamad R K, Rashid T A. GOOSE algorithm: a powerful optimization tool for real-world engineering

基于NURBS曲线的数据拟合算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1NURBS曲线基础 4.2 数据拟合原理 5.完整程序 1.程序功能描述        基于NURBS曲线的数据拟合算法,非均匀有理B样条(Non-Uniform Rational B-Splines,简称NURBS)曲线是一种强大的数学工具,广泛应用于计算机图形学、CAD/CA

matlab sift算法使用的记录

最近在做个三维建模的东西,用到了sift算子,需要在matlab上使用。网上介绍使用了 David Lowe的源代码。源码地址为: http://www.cs.ubc.ca/~lowe/keypoints/ 在使用的过程中,会出现以下错误: 不知道是为什么,在一片博客中看到图像大小大致要800*600的说明,我就猜想是不是因为我的图像太大了。原始图像3000*1200的,于是我就把图

详细解析MATLAB和Simulink中的文件格式:mat, mdl, mexw32, 和 m 文件

matlab 探索MATLAB和Simulink中的文件格式:MAT, MDL, MEXW32, 和 M 文件**MAT 文件 (.mat)****MDL 文件 (.mdl)****MEX 文件 (.mexw32/.mexw64)****M 文件 (.m)****总结** 探索MATLAB和Simulink中的文件格式:MAT, MDL, MEXW32, 和 M 文

Matlab中巧用LaTex

Matlab图形中title、xlabel、ylabel、zlabel、textbox和legend等的Interpreter属性有三个属性:latex 、tex、none。默认为tex。 当键入:>> set(text,'Interpreter') Matlab将返回'Interpreter'所包含的属性值: [ latex | {tex} | none ]。 利用Matlab文本的Interp

matlab fspecial 用法解释

fspecial 函数用于建立预定义的滤波算子,其语法格式为: h = fspecial(type) h = fspecial(type , para) 其中 type 指定算子的类型, para 指定相应的参数; type 的类型有: 1 、 'average' averaging filter 为均值滤波,参数为 hsize 代表模板尺寸

MATLAB取整函数

1)fix(x) : 截尾取整. >> fix( [3.12 -3.12]) ans =      3    -3 (2)floor(x):不超过x 的最大整数.(高斯取整) >> floor( [3.12 -3.12]) ans =      3    -4 (3)ceil(x) : 大于x 的最小整数 >> ceil( [3.12 -3.12])

matlab filter2和imfilter有什么区别

imfilter 可进行多维图像(RGB等)进行空间滤波,且可选参数较多 filter2 只能对二维图像(灰度图)进行空间滤波 两个函数结果类型不一样,只需要在I1=filter2(h,I)后面加上I1=uint8(I1)进行类型转换,结果就是一样的。  imfilter N-D filtering of multidimensional images.     B = imfilte