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

news2024/11/18 23:41:16

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

作为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;
else
    A = 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 > 37
        j = 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 > 32
        c = 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;
    else
        o = 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:25
    for i = 0:45
        V = 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)
    end
    drawnow
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.coloradmin.cn/o/1498884.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git 内幕探索:从底层文件系统到历史编辑的全面指南

微信搜索“好朋友乐平”关注公众号。 1. Git 底层文件对象 #mermaid-svg-uTkvyr26fNmajZ3n {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-uTkvyr26fNmajZ3n .error-icon{fill:#552222;}#mermaid-svg-uTkvyr26fNmaj…

K8S之实现业务的金丝雀发布

如何实现金丝雀发布 金丝雀发布简介优缺点在k8s中实现金丝雀发布 金丝雀发布简介 金丝雀发布的由来&#xff1a;17 世纪&#xff0c;英国矿井工人发现&#xff0c;金丝雀对瓦斯这种气体十分敏感。空气中哪怕有极其微量的瓦斯&#xff0c;金丝雀也会停止歌唱&#xff1b;当瓦斯…

前端工程化【01】:核心思想、发展历程和面临挑战

前端工程化是指将前端开发中的工具、流程和方法进行规范化和自动化&#xff0c;以提高前端开发效率、提升代码质量和项目可维护性的一种开发方式。通过前端工程化&#xff0c;可以将前端开发过程中的重复工作自动化&#xff0c;减少开发者的重复劳动&#xff0c;提高开发效率。…

✅ Windows11 系统 I 卡独显 A770 安装 深度学习 Pytorch 环境

&#x1f4cb; 文献参考 这里非常感谢知乎上的 ‘丢丢’ 的[**Windows系统下英特尔独显Pytorch的历程**] 为我提供了一开始的 I 卡安装想法&#xff01;但是文中并未介绍如何进行额外的环境变量操作问题&#xff0c;导致很多软件直接安装至系统盘&#xff0c;占用系统盘空间&am…

Go编译报错 link: running gcc failed: exit status 1(已解决)

背景 在对一个开源的Go程序二次开发 重新编译时 &#xff0c; 报错截图如下 报错文字如下&#xff1a;关键信息 link: running gcc failed: exit status 1 $ go build -o orchestrator-didi -i go/cmd/orchestrator/main.go go build: -i flag is deprecated # command-li…

18-Java迭代器模式 ( Iterator Pattern )

Java迭代器模式 摘要实现范例 迭代器模式&#xff08;Iterator Pattern&#xff09;用于顺序访问集合对象的元素&#xff0c;不需要知道集合对象的底层表示 迭代器模式是 Java 和 .Net 编程环境中非常常用的设计模式 迭代器模式属于行为型模式 摘要 1. 意图 提供一种方法…

【MySQL】lower_case_table_names作用及使用

知识点&#xff1a; lower_case_table_names 是mysql设置大小写是否敏感的一个参数。 场景&#xff1a;在使用dataease时&#xff0c;连接外部数据库&#xff0c;启动报错&#xff01;后查看官方文档&#xff0c;特别要求改数据库配置文件&#xff1a;lower_case_table_names …

Service Mesh:如何为您的微服务架构带来可靠性和灵活性

在云原生架构中&#xff0c;Service Mesh 技术成为了微服务架构中不可或缺的一环。本文灸哥将和你一起探讨 Service Mesh 技术的原理、功能和实践&#xff0c;帮助架构师和开发人员更好地理解和应用这一关键技术。 1、Service Mesh 技术概述 Service Mesh 又称为服务网格&…

FPGA 按键控制串口发送

按键消抖 消抖时间一般为10ms&#xff0c;我使用的板子是ACX720&#xff0c;晶振为50MHZ&#xff0c;20ns为一周期。 状态机 模块设计 设计文件 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2023/01/11 12:18:36 // Design Name: // Module Name…

JavaEE进阶(14)Linux基本使用和程序部署(博客系统部署)

接上次博客&#xff1a;JavaEE进阶&#xff08;13&#xff09;案例综合练习——博客系统-CSDN博客 目录 程序配置文件修改和打包 构建项目并打包 分平台配置 数据准备 上传jar包到云服务器并运行 开放端口号 验证程序 如何查看日志得到报错信息 常见问题 关于Linux基…

【自然语言处理】NLP入门(五):1、正则表达式与Python中的实现(5):字符串常用方法:对齐方式、大小写转换详解

文章目录 一、前言二、正则表达式与Python中的实现1.字符串构造2. 字符串截取3. 字符串格式化输出4.字符转义符5. 字符串常用函数函数与方法之比较 6. 字符串常用方法1. 对齐方式center()ljust()rjust() 2. 大小写转换lower()upper()capitalize()title()swapcase() 一、前言 本…

maven项目结构管理统一项目配置操作

一、maven分模块开发 Maven 分模块开发 1.先创建父工程&#xff0c;pom.xml文件中&#xff0c;打包方式为pom 2.然后里面有许多子工程 3.我要对父工程的maven对所有子工程进行操作 二、解读maven的结构 1.模块1 <groupId>org.TS</groupId><artifactId>TruthS…

Java基于微信小程序的医院挂号系统(V2.0),附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

ThreadLocal, InheritableThreadLocal和TransmittableThreadLocal

ThreadLocal, InheritableThreadLocal和TransmittableThreadLocal ThreadLocal(TL) 后续部分地方会使用ThraedLocal简称为TL 什么是TL? ThreadLocal是Java中的一个类, 也称为线程本地变量, 它提供了线程局部变量的功能。每个ThreadLocal对象都可以存储一个线程本地的变量副…

【数据结构】二、线性表:4.循环链表的定义及其基本操作(循环单链表,循环双链表的初始化、判空、判断头结点、尾结点、插入、删除)

文章目录 4.循环链表4.1循环单链表4.1.1初始化4.1.2判断单链表是否为空4.1.3判断p结点是否为循环单链表的表尾结点 4.2循环双链表4.2.1初始化4.2.2判断循环链表是否为空4.2.3判断结点p是否为循环双链表的表尾结点4.2.4双链表的插入4.2.5双链表的删除 4.循环链表 4.1循环单链表…

R语言:多值提取到点

ArcGIS中有相关工具实现多值提取到点的功能&#xff0c;在这里&#xff0c;我将使用R语言进行操作&#xff1a; library(dplyr) library(readxl) library(sf) library(raster)setwd("D:/Datasets") Bio <- stack(paste0("D:/Datasets/Data/worldclim2_1km/…

关于并发编程和并行

目录 前言: 并发编程: 1.并发编程的定义: 2. 并发编程的目的 2.1提高性能&#xff1a; 2.2增强响应性&#xff1a; 2.3资源利用&#xff1a; 3. 并发编程的实现方式 3.1多线程&#xff1a; 3.2多进程&#xff1a; 3.3异步编程&#xff1a; 3.4协程&#xff1a; 4. …

16、电源管理入门之驱动Runtime PM管理

目录 1. 框架介绍 1.1 为什么需要Runtime PM Framework? 1.2 系统框架图 2. Drivers 3. Runtime PM core 4. power domain framework 5. runtime pm的sysfs 6参考: Runtime PM管理也就是设备驱动里面的电源管理,即设备驱动结构体里面的struct dev_pm_ops,只控制设…

简明固体物理--晶体的形成与晶体结构的描述

简明固体物理-国防科技大学 chapter 1 Formation of Crystal Contents and roadmapQuantum Mechanics and atomic structureElectronsOld quantum theoryMethod of Quantum MechanicsDistributing functions of micro-particles BindingCrystal structure and typical crystal…

【打工日常】使用docker部署IT运维管理平台CAT

​一、CAT介绍 CAT是一个专为 IT 运维从业者打造的一站式解决方案平台&#xff0c;包含资产管理、工单、工作流、仓储等功能模块。 本项目是celaraze/chemex重构版&#xff0c;原项目chemex名称弃用&#xff1b;CAT采用全新架构设计&#xff0c;大量提升使用体验的细节&#xf…