Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-04-22, 13:12   #1
lfssirius
初级会员
 
注册日期: 2009-04-22
帖子: 3
声望力: 0
lfssirius 正向着好的方向发展
默认 回复: for循环做一个同心圆环图像时的问题

function plotcircle(n,center)
for i=1:n
subplotcircle(i,center);
hold on;
end
axis equal;
function subplotcircle(r,center)
t=linspace(-pi,pi,100);%%画100个点
x=cos(t)*r+center(1);
y=sin(t)*r+center(2);
plot(x,y)

画n个同心圆,以center为圆心
lfssirius 当前离线   回复时引用此帖
旧 2009-04-23, 14:41   #2
TTT_IOU
普通会员
 
注册日期: 2009-02-22
帖子: 91
声望力: 18
TTT_IOU 正向着好的方向发展
默认 回复: for循环做一个同心圆环图像时的问题

看下程序可否:
a=input('请输入圆心横坐标(例如 -2):');
b=input('请输入圆心纵坐标(例如 3):');
for n=1:1:10
t=linspace(-pi,pi);
x=sin(t)*sqrt(0.02*n)+a;
y=cos(t)*sqrt(0.02*n)+b;
plot(x,y)
hold on
axis equal
end
应加hold on 否者只画出最后一个。
TTT_IOU 当前离线   回复时引用此帖
旧 2009-04-25, 21:21   #3
protoss
初级会员
 
注册日期: 2009-04-22
年龄: 39
帖子: 8
声望力: 0
protoss 正向着好的方向发展
默认 回复: fill 或patch指令填充同心圆环的问题

绘制十个同心圆:
clear;clc
a=input('请输入圆心横坐标(例如 -2):');
b=input('请输入圆心纵坐标(例如 3):');
for k=1:1:10
t=linspace(-pi,pi);
x=sin(t)'*sqrtm(0.02*k)+a;
y=cos(t)'*sqrtm(0.02*k)+b;
plot(x,y)
hold on
axis equal

我想用fill或patch指令将第一个圆与第二个圆之间,第三个圆与第四个圆之间,第五个圆与第六个圆之间。。。第九个圆与第十个圆之间的环带填充成黑色,这样就形成了黑白相间的环带。望高人指点一番。谢谢了

此帖于 2009-04-25 21:22 被 protoss 编辑。 原因: 有错
protoss 当前离线   回复时引用此帖
旧 2009-04-29, 11:29   #4
protoss
初级会员
 
注册日期: 2009-04-22
年龄: 39
帖子: 8
声望力: 0
protoss 正向着好的方向发展
默认 回复: for循环做一个同心圆环图像时的问题

绘制并填充特定的十个同心圆:
clear;clc
a=input('请输入圆心横坐标(例如 -2):');
b=input('请输入圆心纵坐标(例如 3):');
for k=1:1:10
t=linspace(-pi,pi);
x=sin(t)'*sqrtm(0.02*k)+a;
y=cos(t)'*sqrtm(0.02*k)+b;
plot(x,y)
hold on
axis equal

我想用fill或patch指令将第一个圆与第二个圆之间,第三个圆与第四个圆之间,第五个圆与第六个圆之间。。。第九个圆与第十个圆之间的环带填充成黑色,这样就形成了黑白相间的环带。请问是否了解。谢谢了。
protoss 当前离线   回复时引用此帖
旧 2009-04-30, 07:46   #5
TTT_IOU
普通会员
 
注册日期: 2009-02-22
帖子: 91
声望力: 18
TTT_IOU 正向着好的方向发展
默认 回复: for循环做一个同心圆环图像时的问题

不知下程序可否:
a=input('请输入圆心横坐标(例如 -2):');
b=input('请输入圆心纵坐标(例如 3):');
for n=10:-1:1
t=linspace(-pi,pi);
x=sin(t)*sqrt(0.02*n)+a;
y=cos(t)*sqrt(0.02*n)+b;
if rem(n,2)==0
fill(x,y,'k');
elseif rem(n,2)==1
fill(x,y,'w')
end
hold on
axis equal
end
希望有帮助!!
TTT_IOU 当前离线   回复时引用此帖
旧 2009-05-04, 16:11   #6
protoss
初级会员
 
注册日期: 2009-04-22
年龄: 39
帖子: 8
声望力: 0
protoss 正向着好的方向发展
默认 回复: for循环做一个同心圆环图像时的问题

那如果绘制的是黑白相间的条形带,设带宽横坐标为x,纵坐标为y,给定一个坐标点s(a,b),
n=10:-1:1 x=sqrt(0.02*n)+a; y任意取,该如何绘制。用bar指令好像不行吧。
protoss 当前离线   回复时引用此帖
旧 2009-05-08, 13:47   #7
protoss
初级会员
 
注册日期: 2009-04-22
年龄: 39
帖子: 8
声望力: 0
protoss 正向着好的方向发展
默认 回复: for循环做一个同心圆环图像时的问题

若给定一点p(x,y),如何以它为中心画一宽高分别为a,b的矩形?最好能对其进行填充
protoss 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 19:57


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.