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

MATLAB | 情人节来绘制更立体的玫瑰花吧

又是一年情人节,今年带来一款更有立体感的玫瑰:

曲面的函数表达式来自:
http://www.bugman123.com/Math/index.html
这个网站,上面还有很多其他帅气的玩意。

基础绘制

x=linspace(0,1,300);
theta=linspace(-2*pi,15*pi,300);
[x,theta]=meshgrid(x,theta);
phi=(pi/2).*exp(-theta./8./pi);
X=1-.5.*(1.25.*(1-mod(3.6.*theta,2*pi)./pi).^2-1/4).^2;
y=1.95653.*x.^2.*(1.27689.*x-1).^2.*sin(phi);
r=X.*(x.*sin(phi)+y.*cos(phi));
roseHdl=surf(r.*cos(theta),r.*sin(theta),X.*(x.*cos(phi)-y.*sin(phi)),'EdgeColor','none');

坐标区域修饰

在最后加入以下代码能让绘图更好看一些:

% 坐标区域修饰
ax=gca;hold on;grid on;
axis([-1,1,-1,1,-.5,1])
ax.FontName='Cambria';
ax.LineWidth=1;
ax.GridLineStyle='-.';
ax.Projection='perspective';
ax.XMinorTick='on';
ax.YMinorTick='on';
ax.ZMinorTick='on';

配色

可以调整颜色映射方向:

比如根据半径映射:

roseHdl.CData=r;

根据x轴坐标大小映射:

roseHdl.CData=r.*cos(theta);

配色可以自己弄点数值矩阵插值,比如:

roseHdl.CData=r;
CM=[0.5300    0.8300    0.81000.5200    0.7500    0.82000.4900    0.6200    0.84000.4900    0.5600    0.84000.4700    0.4900    0.85000.4500    0.3500    0.87000.9500    0.9500    0.9500];
CMX=linspace(0,1,size(CM,1));
CMXX=linspace(0,1,256)';
CM=[interp1(CMX,CM(:,1),CMXX,'pchip'),interp1(CMX,CM(:,2),CMXX,'pchip'),interp1(CMX,CM(:,3),CMXX,'pchip')];
colormap(CM)

还可以配合之前写的slanCM工具包:
https://blog.csdn.net/slandarer/article/details/127719784

随便举点例子:

roseHdl.CData=r.*cos(theta);
CM=slanCM('blues');
colormap(CM)

roseHdl.CData=r;
CM=slanCM(134);
colormap(CM)

roseHdl.CData=r;
CM=slanCM(136);
colormap(CM)

旋转

把代码改成这样就能一直旋转:

function valentinesRose2
% 绘制玫瑰花
x=linspace(0,1,300);
theta=linspace(-2*pi,15*pi,300);
[x,theta]=meshgrid(x,theta);
phi=(pi/2).*exp(-theta./8./pi);
X=1-.5.*(1.25.*(1-mod(3.6.*theta,2*pi)./pi).^2-1/4).^2;
y=1.95653.*x.^2.*(1.27689.*x-1).^2.*sin(phi);
r=X.*(x.*sin(phi)+y.*cos(phi));
roseHdl=surf(r.*cos(theta),r.*sin(theta),X.*(x.*cos(phi)-y.*sin(phi)),'EdgeColor','none');roseHdl.CData=r;
CM=slanCM('copper2');
CM=CM(1:180,:);
colormap(CM)% 坐标区域修饰
ax=gca;hold on;grid on;
axis([-1,1,-1,1,-.5,1])
ax.FontName='Cambria';
ax.LineWidth=1;
ax.GridLineStyle='-.';
ax.Projection='perspective';
ax.XMinorTick='on';
ax.YMinorTick='on';
ax.ZMinorTick='on';
set(gcf,'Color',[1,1,1]);% 循环绘图旋转起来
while truetheta=theta+.01;roseHdl.XData=r.*cos(theta);roseHdl.YData=r.*sin(theta);pause(.01),drawnow
end

若想自动保存为gif,把最后部分旋转代码改为如下部分即可:

% 存储gif =================================================================
% R2022a及之后版本
n=0;
while truetheta=theta+.01;roseHdl.XData=r.*cos(theta);roseHdl.YData=r.*sin(theta);if n<50exportgraphics(gcf,'test1.gif','Append',true)endn=n+1;pause(.01),drawnow
end% R2022a之前版本
% n=0;DelayTime=.02;
% F=getframe(ax);
% [imind,cm]=rgb2ind(F.cdata,256);
% imwrite(imind,cm,'test2.gif','gif','Loopcount',inf,'DelayTime',DelayTime);
% while true
%     theta=theta+.01;
%     roseHdl.XData=r.*cos(theta);
%     roseHdl.YData=r.*sin(theta);
%     if n<50
%         F=getframe(ax);
%         [imind,cm]=rgb2ind(F.cdata,256);
%         imwrite(imind,cm,'test2.gif','gif','WriteMode','append','DelayTime',DelayTime);
%     end
%     n=n+1;
%     pause(.01),drawnow
% end

在这里插入图片描述

相关文章:

MATLAB | 情人节来绘制更立体的玫瑰花吧

又是一年情人节&#xff0c;今年带来一款更有立体感的玫瑰&#xff1a; 曲面的函数表达式来自: http://www.bugman123.com/Math/index.html 这个网站&#xff0c;上面还有很多其他帅气的玩意。 基础绘制 xlinspace(0,1,300); thetalinspace(-2*pi,15*pi,300); [x,theta]meshg…...

【Python表白代码】 2.14“Valentine‘s Day”“没别的意思 就是借着特殊日子说声喜欢你”你在哪儿?我去见你~(各种玫瑰源码合集)

导语 Valentines Day Every man is a poet when he is in love 所有文章完整的素材源码都在&#x1f447;&#x1f447; 粉丝白嫖源码福利&#xff0c;请移步至CSDN社区或文末公众hao即可免费。 哈喽&#xff01;我是你们的木木子吖~ 情人节又到了&#xff0c;礼物备好了没&am…...

压力应变电桥信号隔离放大变送器差分输入0-±10mV/0-±20mV转0-20mA/0-10v

概述&#xff1a;DIN11 IPO 压力应变桥信号处理系列隔离放大器是一种将差分输入信号隔离放大、转换成按比例输出的直流信号导轨安装变送模块。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等行业。此系列模块内部嵌入了一个高效微功率的电源&#xff0c;向输入…...

Linux系统之部署个人导航页

Linux系统之部署个人导航页 一、本次导航页工具介绍二、检查本地系统环境1.检查系统版本2.检查系统内核版本三、下载导航页软件包1.创建下载目录2.下载导航页软件包四、部署前环境准备工作1.安装python32.安装pipenv3.创建虚拟环境①创建环境②修改base.py文件③修改settings.p…...

四、Windows 平台安装 MongoDB

MongoDB 提供 64 位系统的预编译二进制包 我们可以从 MongoDB 官网下载安装 MongoDB 预编译二进制包下载地址&#xff1a;Try MongoDB Atlas Products | MongoDB 在 MongoDB 2.2 版本后已经不再支持 Windows XP 系统 最新版本也已经没有了 32 位系统的安装文件 MongoDB for W…...

浅谈应用安全测试工具

正确的应用程序安全测试工具可以改善企业安全态势和开发工作流程。如今&#xff0c;应用程序安全从一开始就内置在整个软件生命周期中&#xff0c;即使是具有成熟开发实践的组织也需要自动化工具来在复杂、快速变化的环境中成功地保护他们的软件。以下比较了三个广泛使用的应用…...

四类(七种)排序算法总结

一、插入排序 基本思想&#xff1a; 每次将一个待排序的对象&#xff0c;按其关键码大小&#xff0c;插入到前面已经排好序的一组对象的适当位置上&#xff0c;直到对象全部插入为止。即边插入边排序&#xff0c;保证子序列中随时都是排好序的。 基本操作——有序插入&#xff…...

[oeasy]python0083_十进制数如何存入计算机_八卦纪事_BCD编码_Binary_Coded_Decimal

编码进化 回忆上次内容 上次 研究了 视频终端的 演化 从VT05 到 VT100从 黑底绿字 到 RGB 24位真彩色形成了 VT100选项 从而 将颜色 数字化 了 生活中我们更常用 10个数字 但是 计算机中 用二进制 日常计数的十进制数 是如何存储进计算机的呢?&#x1f914; 从10进制到2进…...

理解框架的编译时与运行时

首先我们需要先理解一下什么事编译时和运行时 在语言层面&#xff0c;先来聊一下前端开发者最常遇见的两种语言JavaScript和Java Java的代码就是被编译为.class 文件才能运行&#xff0c;这个编译过程就是编译时&#xff0c;运行 .class 文件就是运行时我们在浏览器直接输入一…...

推挽电路---采用二极管消除交越失真----克服交越失真的互补推挽输出电路图

交越失真产生的原因及消除方法 由于晶体管的门限电压不为零&#xff0c;比如一般的硅三极管&#xff0c;NPN型在0.7V以上才导通&#xff0c;这样在00.7就存在死区&#xff0c;不能完全模拟出输入信号波形&#xff0c;PNP型小于-0.7V才导通&#xff0c;比如当输入的交流的正弦波…...

day11_面向对象

今日内容 零、 复习昨日 一、一日一题(数组,OOP) 二、面向对象练习&#xff08;方法参数返回值&#xff09; 三、局部变量&成员变量 四、this关键字 五、构造方法 六、重载 七、封装 小破站同步上课视频: https://space.bilibili.com/402601570/channel/collectiondetail?…...

大数据处理学习笔记1.1 搭建Scala开发环境

文章目录零、本讲学习目标一、Scala简介&#xff08;一&#xff09;Scala概述&#xff08;二&#xff09;函数式编程&#xff08;三&#xff09;Scala特性1、一切都是对象2、一切都是函数3、一切都是表达式&#xff08;四&#xff09;在线运行Scala二、选择Scala版本三、Window…...

VSCODE C++ 调用matplotlibcpp画图

使用VSCODE编写C程序&#xff0c;想在调试过程中看中间数据的波形&#xff0c;于是找到了python的matplotlibcpp库&#xff0c;参考文章链接是&#xff1a;https://blog.csdn.net/weixin_43769166/article/details/118365416&#xff1b;按照他的步骤配置好之后&#xff0c;跳出…...

面对“开门红”,跨境支付如何寻求新增长曲线?

易观&#xff1a;2022年是第三方支付行业洗牌加剧的一年&#xff0c;在部分机构选择退出的过程中&#xff0c;也有机构开始瞄准跨境业务&#xff0c;成为了支付机构转型的重要方向之一。跨境支付是指两个或及其以上的国家或地区进行国际贸易、国际投资或其他经济活动&#xff0…...

MySQL入门篇-MySQL MHA高可用实战

MHA简介 MHA&#xff08;Master High Availability&#xff09;目前在MySQL高可用方面是一个相对成熟的解决方案&#xff0c;它由日本DeNA公司的youshimaton&#xff08;现就职于Facebook公司&#xff09;开发&#xff0c;是一套优秀的作为MySQL高可用性环境下故障切换和主从提…...

C语言文件操作

目录1.文件指针2.文件的打开和关闭3.文件的读写3.1文件的顺序读写fgetc和fputcfgets和fputsfscanf和fprintffread和fwrite3.2文件的随机读写fseekftellrewind4.文本文件和二进制文件5.文件读取结束的判定6.文件缓冲区1.文件指针 在文件操作中&#xff0c;一个关键的概念是文件…...

Flink中核心重点总结

目录 1. 算子链 1.1. 一对一&#xff08;One-to-one&#xff0c; forwarding&#xff09; 1.2. 重分区&#xff08;Redistributing&#xff09; 1.3. 为什么有算子链 2. 物理分区&#xff08;Physical Partitioning&#xff09; 2.1. 什么是分区 2.2. 随机分区&#xff…...

gismo中NURBS的相关函数的使用---待完善

文章目录 前言一、B样条的求值1.1 节点向量的生成1.2 基函数的调用1.3 函数里面的T指的是系数类型二、以等几何两个单元12个控制点为例输出的控制点坐标有误1.4二、#pic_center <table><tr><td bgcolor=PowderBlue>二维数2.12.22.32.4三、3.13.23.33.4四、4.…...

5.数据共享与持久化

数据共享与持久化 在容器中管理数据主要有两种方式&#xff1a; 数据卷&#xff08;Data Volumes&#xff09;挂载主机目录 (Bind mounts) 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录&#xff0c;它绕过UFS&#xff0c;可以提供很多有用的特性&#xff1a; 数据…...

RabbitMQ-客户端源码之AMQCommand

AMQCommand不是直接包含Method等成员变量的&#xff0c;而是通过CommandAssembler又做了一次封装。 接下来先看下CommandAssembler类。此类中有这些成员变量&#xff1a; /** Current state, used to decide how to handle each incoming frame. */ private enum CAState {EXP…...

linux设置登录失败处理功能(密码错误次数限制、pam_tally2.so模块)和操作超时退出功能(/etc/profile)

一、登录失败处理功能策略 1、登录失败处理功能策略&#xff08;服务器终端&#xff09; &#xff08;1&#xff09;编辑系统/etc/pam.d/system-auth 文件&#xff0c;在 auth 字段所在的那一部分添加如下pam_tally2.so模块的策略参数&#xff1a; auth required pam_tally2…...

Centos7上Docker安装

文章目录1.Docker常识2.安装Docker1.卸载旧版本Docker2.安装Docker3.启动Docker4.配置镜像加速前天开学啦~所以可以回来继续卷了哈哈哈&#xff0c;放假在家效率不高&#xff0c;在学校事情也少点(^_−)☆昨天和今天学了学Docker相关的知识&#xff0c;也算是简单了解了下&…...

新瑞鹏“狂飙”,宠物医疗是门好生意吗?

宠物看病比人还贵&#xff0c;正在让不少年轻一族陷入尴尬境地。在知乎上&#xff0c;有个高赞提问叫“你愿意花光积蓄&#xff0c;给宠物治病吗”&#xff0c;这个在老一辈人看来不可思议的魔幻选择&#xff0c;真实地发生在当下的年轻人身上。提问底下&#xff0c;有人表示自…...

Spring循环依赖问题,Spring是如何解决循环依赖的?

文章目录一、什么是循环依赖1、代码实例2、重要信息二、源码分析1、初始化Student对Student中的ClassRoom进行Autowire操作2、Student的自动注入ClassRoom时&#xff0c;又对ClassRoom的初始化3、ClassRoom的初始化&#xff0c;又执行自动注入Student的逻辑4、Student注入Class…...

更改SAP GUI登录界面信息

在SAP GUI的登录界面&#xff0c;左部输入登录信息如客户端、用户名、密码等&#xff0c;右部空余部分可维护一些登录信息文本&#xff0c;如登录的产品、客户端说明及注意事项等&#xff0c;此项操作详见SAP Notes 205487 – Own text on SAPGui logon screen 维护文档使用的…...

分布式微服务架构下网络通信的底层实现原理

在分布式架构中&#xff0c;网络通信是底层基础&#xff0c;没有网络&#xff0c;也就没有所谓的分布式架构。只有通过网络才能使得一大片机器互相协作&#xff0c;共同完成一件事情。 同样&#xff0c;在大规模的系统架构中&#xff0c;应用吞吐量上不去、网络存在通信延迟、我…...

进大厂必备的Java面试八股文大全(2023最新精简易懂版,八股文中的八股文)

为什么同样是跳槽&#xff0c;有些人薪资能翻三倍&#xff1f;” 最近一个粉丝发出了灵魂拷问&#xff0c;类似的问题我收到过很多次&#xff0c;身边也确实有认识的同事、朋友们有非常成功的跳槽经历和收益&#xff0c;先说一个典型例子&#xff1a; 学弟小 A 工作一年半&am…...

都说测试行业饱和了,为什么我们公司给初级测试开到了12K?

故事起因&#xff1a; 最近我有个刚毕业的学生问我说&#xff1a;我感觉现在测试行业已经饱和了&#xff0c;也不是说饱和了&#xff0c;是初级的测试根本就没有公司要&#xff0c;哪怕你不要工资也没公司要你&#xff0c;测试刚学出来&#xff0c;没有任何的项目经验和工作经验…...

解决Idea启动项目失败,提示Error running ‘XXXApplication‘: Command line is too long

IDEA版本为&#xff1a;IntelliJ IDEA 2018.2 (Ultimate Edition)一、问题描述有时当我们使用IDEA&#xff0c;Run/Debug一个SpringBoot项目时&#xff0c;可能会启动失败&#xff0c;并提示以下错误。Error running XXXApplication: Command line is too long. Shorten comman…...

GB/T28181-2022针对H.265、AAC的说明和技术实现

GB/T28181-2022规范说明GB/T28181-2022相对来GB/T28181-2016针对H.265、AAC的更新如下&#xff1a;——更改了“联网系统通信协议结构图”&#xff0c;媒体流通道增加了 H.265、G.722.1、AAC&#xff08;见 4.3.1&#xff0c;2016 年版的 4.3.1&#xff09;。——增加了对 H.26…...