MATLAB绘图笔记——画圆的几种方法
列举了三种画圆的方法,推荐使用方法3。
方法1:
filledCircle([1,3],3,100,'k');
hold on
filledCircle([-0.25,4.25],1,100,'r');
filledCircle([2.5,3],1,100,'g');
filledCircle([0.1,1.7],1,100,'b');
axis off
function h = filledCircle(center,r,N,color)
%---------------------------------------------------------------------------------------------
% FILLEDCIRCLE Filled circle drawing
%
% filledCircle(CENTER,R,N,COLOR) draws a circle filled with COLOR that
% has CENTER as its center and R as its radius, by using N points on the
% periphery.
%
% Usage Examples,
%
% filledCircle([1,3],3,1000,'b');
% filledCircle([2,4],2,1000,'r');
%
% Sadik Hava <sadik.hava@gmail.com>
% May, 2010
%
% Inspired by: circle.m [Author: Zhenhai Wang]
%---------------------------------------------------------------------------------------------
THETA=linspace(0,2*pi,N);
RHO=ones(1,N)*r;
[X,Y] = pol2cart(THETA,RHO);
X=X+center(1);
Y=Y+center(2);
h=fill(X,Y,color);
axis square;
% COPYRIGHT STUFF... :D (Since I am modifying Zhenhai's code.)
%
% Copyright (c) 2002, Zhenhai Wang
% All rights reserved.
%
% Redistribution and use in source and binary forms, with or without
% modification, are permitted provided that the following conditions are
% met:
%
% * Redistributions of source code must retain the above copyright
% notice, this list of conditions and the following disclaimer.
% * Redistributions in binary form must reproduce the above copyright
% notice, this list of conditions and the following disclaimer in
% the documentation and/or other materials provided with the distribution
%
% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
% AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
% ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
% LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
% CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
% SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
% INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
% CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
% ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
% POSSIBILITY OF SUCH DAMAGE.
方法2:
绘制圆的最简单(尽管不是很直观)的方法是使用矩形函数,其中’curvature’属性设置为[1 1]。 要填充圆圈,请通过“facecolor”属性指定颜色。 圆边框的颜色由’edgecolor’属性控制。
MinVal = -1;
MaxVal = 1;
MaxRadius = 0.5;
nCircles = 5;
Dimension = 2;
Circles = zeros(nCircles, Dimension);
Radius = zeros(nCircles, 1);
cmap = hsv(nCircles); %// define colors. You could change `hsv` to `jet`, `cool`, ...for i = 1 : nCirclesCircles(i,:) = unifrnd(MinVal, MaxVal, [1, Dimension]);Radius(i) = unifrnd(0, MaxRadius, 1);
endfigure;
hold on;
for i = 1 : nCirclesrectangle('Curvature', [1 1], ...'Position', [Circles(i,:)-Radius(i) repmat(2*Radius(i),1,2)], ...'facecolor', cmap(i,:), 'edgecolor', 'none') %// plot filled circle
endaxis equal; %// same aspect ratio in both axes
grid on;
方法3:
要使圆可见,即使它们已被遮盖,您也可以使用具有透明度(alpha)的颜色。 矩形不支持透明度,因此必须使用patch功能。通过patch绘图并通过适当的属性指定颜色和透明度。
MinVal = -1;
MaxVal = 1;
MaxRadius = 0.5;
nCircles = 5;
Dimension = 2;
Circles = zeros(nCircles, Dimension);
Radius = zeros(nCircles, 1);
cmap = hsv(nCircles); %// define colors. You could change `hsv` to `jet`, `cool`, ...
alpha = .5; %// define level of transparencyfor i = 1 : nCirclesCircles(i,:) = unifrnd(MinVal, MaxVal, [1, Dimension]);Radius(i) = unifrnd(0, MaxRadius, 1);
endt = 0 : .1 : 2 * pi;figure;
hold on;
for i = 1 : nCirclesx = Radius(i) * cos(t) + Circles(i,1);y = Radius(i) * sin(t) + Circles(i,2);patch(x, y, cmap(i,:), 'facealpha', alpha, 'edgecolor', 'none'); %// plot filled circle with transparency
endaxis equal; %// same aspect ratio in both axes
grid on;
参考
https://stackoverflow.com/questions/30823519/how-colorize-circles-in-a-plot-in-matlab
MATLAB绘图笔记——画圆的几种方法相关推荐
- MATLAB绘图笔记——画立方体的几种方法
https://blog.csdn.net/wokaowokaowokao12345/article/details/79519903
- 利用数学公式在Scratch画圆的两种方法(坐标、角度)以及在教学中的实现
今天在翻Scratch课件时看到了一个利用Scratch画太阳系行星运转的动画,包括公转和自转,感觉很有意思.但是一看程序,各个行星的移动轨迹竟然是把圆上所有坐标写了一遍,这种操作不禁让我想到了C语言 ...
- Matlab绘图--包含各种标示符的输入方法
Matlab绘图–包含各种标示符的输入方法. 文档汇总利润Matlab绘图各种标示符的输入方法 适合MATLAB学习者查阅使用 文档包含了整理的所有内容 完整版 标记符号 实线 b蓝色 . 点 s 方 ...
- matlab批量处理程序设计,Matlab实现批量处理图像的两种方法
Matlab实现批量处理图像的两种方法 基本上有两个方法:一个是将你的图像统一进行一次重命名如:1.jpg,2.jpg等,然后利用for循环依次进行处理即可,如下面的语句:假设你的图像共有20副: s ...
- matlab中如何读写txt,Matlab中读取txt文件的几种方法
Matlab中读取txt文件的几种方法 matlab读取文本文件的几种函数: 1.load--适合读取纯数据文本: 2.importdata--只读取数据,自动省略数据格式前后的字符,超大文件不适合: ...
- css画三角形的两种方法
css画三角形的两种方法 画三角形 1 border 2 css的clip-path 画三角形 1 border <div class="left-down-small" / ...
- matlab神经网络工具箱关掉ValidationChecks的三种方法
原文来自 老饼玩转-BP神经网络http://bp.bbbdata.com/teach#107 目录 一.Validation Checks是什么 二.怎么关掉Validation Checks 本 ...
- matlab绘图笔记
matlab绘图 原文出处:https://ww2.mathworks.cn/help/ 基本绘图函数 创建绘图 plot plot 函数具有不同的形式,具体取决于输入参数. 如果 y 是向量,plo ...
- html根据坐标画圆,Canvas三种动态画圆实现方法说明(小结)
前言 canvas是HTML5出来的绘图API容器,对于图形的处理非常强大,下面使用canvas配合JavaScript来做一下动态画圆效果.可以用它来做圆形进度条来使用. 这里我个人总结了3种实现方 ...
最新文章
- 内核变量——Jiffies
- 算法 | 尺度不变特征变换匹配算法 Scale Invariant Feature Transform (SIFT)
- java中各种流的详细使用
- SpringBoot 路径处理
- python自带gui_Python GUI开发工具中五种类型的相关介绍
- iis web.config 配置 经典模式_django部署在iis下,webconfig错误
- Pycharm连接BitBucket
- 江西版七年级计算机教案,江西科技版《信息技术》七年级信息技术下册教案.doc...
- python的模块(module)和包(package)
- 印度人是怎样开发软件的?
- RS422--ARINC429通讯转换模块 RS422支持全双工通讯接口,通讯速率可设置,ARINC429支持发送和接收
- No code “EPSG:4326“ from authority “EPSG“
- 计算机网络(第7版) - 第五章 运输层 习题答案
- dnf连接服务器黑屏xp系统,windows xp进入桌面后黑屏的解决技巧
- x264 2pass编码说明
- 开源在线客服系统源码(支持PC/H5/公众号/小程序)基于golang的网页在线客服系统...
- php下lua的运行,phpStudy中起用lua脚本
- 【建议收藏】20个Python非常有用的单行代码
- golang使用mongoDB - mgo.v2
- matlab 求留数,用matlab求留数