Matlab实现绘制玫瑰线的示例代码

目录
  • 绘制效果
  • 基础代码
  • 土味代码

绘制效果

实际上就是在进行曲线:

的可视化,代码非常简单哈:

基础代码

function roseCurve1
set(gcf,'position',get(0,'ScreenSize'));
% 坐标区域修饰
ax=gca;
hold on
ax.XLim=[-.5,7.5];
ax.YLim=[-.5,10.5];
ax.Color=[0 0 0];
ax.DataAspectRatio=[1,1,1];
ax.XTick=[];
ax.YTick=[];

% 属性列表
textProp1={'FontSize',14,'FontName','Cambria','Color',[1,1,1].*.8,'HorizontalAlignment','center'};
textProp2={'FontSize',15,'FontName','Cambria','Color',[255,227,147]./255,'HorizontalAlignment','center'};
circProp={'o','Color',[1,1,1].*.8,'MarkerSize',18,'LineWidth',1.5};
% 绘制数字
plot(1:1:7,10.*ones(1,7),circProp{:})
plot(zeros(1,10),0:9,circProp{:})
for i=1:7,text(i,10,num2str(i),textProp1{:});end
for i=1:10,text(0,10-i,num2str(i),textProp1{:});end
text(0+.2,10+.2,'q',textProp2{:})
text(0-.2,10-.2,'p',textProp2{:})
text(0,10,'\\',textProp2{:},'FontSize',18)

[XMesh,YMesh]=meshgrid(1:7,1:10);
qpMesh=XMesh./YMesh;

% 循环绘图
for i=1:10
    for j=1:7
        lineMat(i,j)=plot(XMesh(i,j),10-YMesh(i,j),'Color',[1,1,1,.4],'LineWidth',1.2);
    end
end

thetaList=linspace(0,20*pi,1000);
for t=1:length(thetaList)
    for i=1:10
        for j=1:7
            r=cos(qpMesh(i,j)*thetaList(1:t));
            x=XMesh(i,j)+cos(thetaList(1:t)).*r.*.4;
            y=10-YMesh(i,j)+sin(thetaList(1:t)).*r.*.4;
            lineMat(i,j).XData=x;
            lineMat(i,j).YData=y;
        end
    end
    pause(.01)
end
end

土味代码

来个彩虹配色的土味代码

function roseCurve2
set(gcf,'position',get(0,'ScreenSize'));
% 坐标区域修饰
ax=gca;
hold on
ax.XLim=[-.5,7.5];
ax.YLim=[-.5,10.5];
ax.Color=[0 0 0];
ax.DataAspectRatio=[1,1,1];
ax.XTick=[];
ax.YTick=[];

% 属性列表
textProp1={'FontSize',14,'FontName','Cambria','Color',[1,1,1].*.8,'HorizontalAlignment','center'};
textProp2={'FontSize',15,'FontName','Cambria','Color',[255,227,147]./255,'HorizontalAlignment','center'};
circProp={'o','Color',[1,1,1].*.8,'MarkerSize',18,'LineWidth',1.5};
% 绘制数字
plot(1:1:7,10.*ones(1,7),circProp{:})
plot(zeros(1,10),0:9,circProp{:})
for i=1:7,text(i,10,num2str(i),textProp1{:});end
for i=1:10,text(0,10-i,num2str(i),textProp1{:});end
text(0+.2,10+.2,'q',textProp2{:})
text(0-.2,10-.2,'p',textProp2{:})
text(0,10,'\\',textProp2{:},'FontSize',18)

[XMesh,YMesh]=meshgrid(1:7,1:10);
qpMesh=XMesh./YMesh;

disMesh=XMesh-YMesh+10;
maxDis=max(disMesh,[],[1,2]);
disMesh=mod(disMesh+6,maxDis)+1;
% 构造hsv配色
colList=hsv2rgb([linspace(0,1,maxDis)',ones(maxDis,1),ones(maxDis,1).*.7]);
% colList=pink(maxDis);

% 循环绘图
for i=1:10
    for j=1:7
        lineMat(i,j)=plot(XMesh(i,j),10-YMesh(i,j),'Color',[colList(disMesh(i,j),:),.5],'LineWidth',1.2);
    end
end

thetaList=linspace(0,20*pi,1000);
for t=1:length(thetaList)
    for i=1:10
        for j=1:7
            r=cos(qpMesh(i,j)*thetaList(1:t));
            x=XMesh(i,j)+cos(thetaList(1:t)).*r.*.4;
            y=10-YMesh(i,j)+sin(thetaList(1:t)).*r.*.4;
            lineMat(i,j).XData=x;
            lineMat(i,j).YData=y;
        end
    end
    pause(.01)
end
end

哈哈哈果然彩虹色画出来还是太土了:

若是将代码

colList=hsv2rgb([linspace(0,1,maxDis)',ones(maxDis,1),ones(maxDis,1).*.7]);

修改为:

colList=pink(maxDis);

以上就是Matlab实现绘制玫瑰线的示例代码的详细内容,更多关于Matlab玫瑰线的资料请关注我们其它相关文章!

(0)

相关推荐

  • 详解Matlab如何绘制小提琴图

    目录 1使用示例 基础使用,Y为矩阵 基础使用,Y为向量,X为标签 基础使用多个图像绘制,并添加图例 2完整代码 写了个matlab绘制小提琴图的函数: 1.图中小提琴状区域为核密度曲线 2.白色方块为25%,75%分位数 3.中间横线为中位数 4.白色点为离群值点 5.竖着的黑线是去掉离群值点后点的上下限 1使用示例 基础使用,Y为矩阵 X=1:5; Y=randn(100,5); Hdl1=violinChart(gca,X,Y,[0 0.447 0.741],0.6); X:横坐标 Y:数

  • Matlab绘制散点密度图的教程详解

    目录 效果 1工具函数完整代码 2参数说明 3使用方式 3.1散点赋色 3.2等高线图 3.3带直方图的散点图 3.4带直方图的等高线图 4使用方式扩展–与ggplot修饰器联动 效果 原理也很简单,通过matlab自带的ksdensity获得网格每一点密度,通过密度拟合曲面,再计算每个数据点对应的概率,并将概率映射到颜色即可为了怕大家找不到函数这次工具函数放到最前面 1工具函数完整代码 function [CData,h,XMesh,YMesh,ZMesh,colorList]=density

  • Python&Matlab实现樱花的绘制

    目录 1.锦短情长 2. 一场樱花雨(Matlab) 3.樱花树(Python) 1.锦短情长 为什么选择这个标题,借鉴了一封情书里面的情长纸短,还吻你万千. 锦短情长 都只谓人走茶凉,怎感觉锦短情长? 一提起眼泪汪汪,是明月人心所向? 2. 一场樱花雨(Matlab) function pingba hold on,axis equal axis(0.5+[-10,50,0,50]) set(gca,'xtick',[],'ytick',[],'xcolor','w','ycolor','w'

  • 利用Matlab绘制一个可爱的南瓜灯

    目录 效果及原理 原理 实现方法 完整代码 效果及原理 效果如下: 调一下数据还能改成三角眼: 原理 南瓜主体函数从知友 [九章算法] 的一张图而来,大体是瓜身瓜柄分段函数,然后绕着z轴旋转一周得到曲面,我对数值做了微调,原图及原始数据: 实现方法 这里我故意保留了网格让南瓜看起来有一点布娃娃的感觉,(大家也可以根据自己喜好改写,例如将’EdgeColor’设置为’none’并打个光啥的) % 构造网格 [t,p]=meshgrid(linspace(0,2*pi,200),linspace(0

  • 利用Matlab绘制有趣图像的示例代码

    目录 1.随机樱花树 2.苹果绘制 3.南瓜绘制 4.一堆三角形绘制 5.月饼绘制 6.大钻石绘制 7.有趣曲线1 8.有趣曲线2 9.有趣曲线3——蝴蝶曲线 10.有趣曲线4——心形曲线 11.有趣曲线5 12.会害羞的含羞草 13.随机雪景 1.随机樱花树 function sakura % @author:slandarer % 随机形状二叉树樱花树绘制 hold on,axis equal axis(0.5+[-10,50,0,50]) set(gca,'xtick',[],'ytick

  • 利用Matlab绘制好看的弦图

    目录 封面图 使用教程 1.数据格式 2.修饰弦 3.圆弧状方块修饰 4.字体调整 5.显示和隐藏刻度 工具函数完整代码 封面图绘制代码 封面一 封面二 弦图在python中以及R中非常常见,但是MATLAB中却始终没有相关函数,file exchange中也没有工作做的较为完备的弦图绘制函数(不过现在有了,我已经往上面也传了一份hiahiahia) 仅工具函数主体部分约300行,字符数约8000,能画出与R语言同等质量的弦图实属不易,希望能有个`点赞``!!! 由于工具函数过长,将被放在最后展

  • 基于Matlab绘制超绚丽的烟花的过程详解

    目录 1.使用效果 2.随机点生成 3.图像膨胀 4.特效「风」模拟 5.级坐标变换 6.图像模糊及再映射 7.图像上色 8.完整代码 1.使用效果 2.随机点生成 我们要构造一个黑色背景,对其添加高斯噪声,然后依据阈值删掉部分噪声,生成一张随机点图片: % 构造黑色背景并生成白色杂点 blackPic=uint8(zeros(800,800)); distPic=imnoise(blackPic,'gaussian',0, 0.11); distPic(distPic<254)=0; 3.图像

  • 详解Matlab绘制3D玫瑰花的方法(内附旋转版本)

    目录 1.玫瑰花绘制 绘制效果 完整代码 2.月季花绘制 绘制效果 完整代码 3.玫瑰配色 4.旋转版本 1.玫瑰花绘制 绘制效果 完整代码 function drawrose grid on [x,t]=meshgrid((0:24)./24,(0:0.5:575)./575.*20.*pi+4*pi); p=(pi/2)*exp(-t./(8*pi)); change=sin(15*t)/150; u=1-(1-mod(3.6*t,2*pi)./pi).^4./2+change; y=2*(

  • Matlab实现绘制玫瑰线的示例代码

    目录 绘制效果 基础代码 土味代码 绘制效果 实际上就是在进行曲线: 的可视化,代码非常简单哈: 基础代码 function roseCurve1 set(gcf,'position',get(0,'ScreenSize')); % 坐标区域修饰 ax=gca; hold on ax.XLim=[-.5,7.5]; ax.YLim=[-.5,10.5]; ax.Color=[0 0 0]; ax.DataAspectRatio=[1,1,1]; ax.XTick=[]; ax.YTick=[];

  • 基于Matlab实现中国象棋的示例代码

    目录 设置变量 绘图 绘制棋盘 绘制棋子 棋子移动规则 判断是否可以移动 移动棋子 吃子 设置变量 nRowNum = 8; % 画布行数 nColNum = 9; % 画布列数 offset_x = 0;% 红车坐标起点 offset_y = 0;% 红车坐标起点 chess_name = {{'帥','仕','相','马','車','炮','兵'},{'將','仕','象','马','車','炮','卒'}}; chess_type = [5 4 3 2 1 2 3 4 5 6 6 7 7

  • OpenCV 绘制同心圆的示例代码

    目录 功能函数 测试代码 最近在学习OpenCV,本文主要介绍了OpenCV 绘制同心圆的示例代码,分享给大家,具体如下: 功能函数 // 绘制同心圆 void DrawConcentricCircle(cv::Mat mask, const cv::Point2i &center, int radius1,int radius2, const cv::Scalar &color, int thickness,int linetype) { // 创建画布 cv::Mat canvas =

  • 利用Pygame绘制圆环的示例代码

    目录 三角函数 弧度和角度的关系 基本包和事件捕捉 主程序 全部代码 三角函数 如果我们以OP作为圆的半径r,以o点作为圆的圆心,圆上的点的x坐标就是r * cos a ,y坐标就是 r * sin a. python中提供math.cos() 和 math.sin(),要求参数为弧度. 弧度和角度的关系 PI代表180度,PI就是圆周率:3.1415926 535 897392 23846,python提供了角度和弧度的转化 math.degress() 弧度转角度 math.radiens(

  • 通过Python绘制中国结的示例代码

    目录 1 中国结的组成部分 2 设计中国结对象 3 绘制结体 4 绘制耳翼 5 绘制挂耳和流苏 6 完整代码,一键运行 1 中国结的组成部分 中国结是一种手工编织工艺品,它身上所显示的情致与智慧正是汉族古老文明中的一个侧面.因为其外观对称精致,可以代表汉族悠久的历史,符合中国传统装饰的习俗和审美观念,故命名为中国结.中国结代表着团结幸福平安,特别是在民间,它精致的做工深受大众的喜爱.其主要组成部分如下图所示. 2 设计中国结对象 基于Python Turtle库实现绘制,首先设计一个中国结对象,

  • Python绘制灯笼的示例代码

    目录 一.效果展示 二.代码展示 三.拓展 一年一度的元宵节刚刚过去,由于时间关系,在元宵节当天晚上11点多才完成本文灯笼的绘制.这两天又在忙着别的事情,所以现在才跟大家分享. 一.效果展示 在介绍代码之前,先来看下本文的实现效果. 视频链接 二.代码展示 接下来展示绘制灯笼的全量源代码 import os import pygame import turtle as t ##画外轮廓 t.title('元宵节字谜灯笼') t.setup(startx=0, starty = 0) #画灯笼提线

  • Python绘制时钟的示例代码

    目录 导入需要的包设置变量 写数字 绘制时针 完整代码 导入需要的包设置变量 from datetime import datetime from pygame.locals import * import sys, math, pygame def print_text(font, x, y, text, color=(255, 255, 255)): img_text = font.render(text, True, color) screen.blit(img_text, (x, y))

  • Python和Matlab实现蝙蝠算法的示例代码

    目录 1前言 2 蝙蝠算法原理细讲 3 详细步骤 4Python实现 4.1代码 4.2结果 5Matlab实现 5.1 代码 5.2 结果 5.3 展望 1 前言 蝙蝠算法是2010年杨教授基于群体智能提出的启发式搜索算法,是一种搜索全局最优解的有效方法.该算法基于迭代优化,初始化为一组随机解,然后迭代搜寻最优解,且在最优解周围通过随机飞行产生局部新解,加强局部搜索速度.该算法具有实现简单.参数少等特点. 该算法主要用于目标函数寻优,基于蝙蝠种群利用产生的声波搜索猎物和控制飞行方向的特征来实现

  • JS+CSS绘制棋盘格的示例代码

    目录 实现思路 完整代码 效果展示 在这篇文章中,我将展示如何使用 css 和一些 JavaScript 来设计棋盘. 为此,你需要对 CSS Flex-box 和 nth-child() 属性有基本的了解. 所以让我们开始吧...... 实现思路 我们将为每个偶数行添加 containerEven 类作为父容器,为每个奇数行添加 containerOdd, 下面显示了相同的 CSS .containerEven>div:nth-child(odd) { background-color: wh

  • Android利用贝塞尔曲线绘制动画的示例代码

    目录 彩虹系列 弹簧动画 复杂立体感动画 总结 前面我们花了几篇介绍了贝塞尔曲线的原理和绘制贝塞尔曲线,着实让我们见识到了贝塞尔曲线的美.好奇心驱使我想看看贝塞尔曲线动起来会是什么样?本篇就借由动画驱动贝塞尔曲线绘制看看动起来的贝塞尔曲线什么效果. 彩虹系列 通过动画控制绘制的结束点,就可以让贝塞尔曲线动起来.例如下面的动图展示的效果,看起来像搭了一个滑滑梯一样.实际上就是用7条贝塞尔曲线实现的,我们使用了 Animation 对象的值来控制绘制的结束点,从而实现了对应的动画效果. 具体源码如下

随机推荐