matlab 折线束的包络,用matlab绘制图1中右图的圆、折线束及其包络线(心形线),请给出步骤及其实现原理,...

本文介绍了如何使用MATLAB绘制心形线和折线束的详细步骤,包括从画圆开始,选取点P,确定切线点Q,以及通过循环实现多个点的连接。提供的MATLAB代码示例展示了具体实现过程,最终得到的图形展现了心形线的包络效果。
摘要由CSDN通过智能技术生成

一:请给出绘制图1中右图的圆、折线束及其包络线(心形线)的步骤及其实现原理。给出绘制该图的MATLAB程序及其运行结果(图形)。

ff9d75cf40caba62b8ec182bdd74d14c.png

题目帮助:

例如,画图的初略步骤可以是这样

a) 画一个基圆C,并在C的周界上画一个点O。

b) 在C上选取另一个点P,画一条线在P点与C相切。

c) 标出切线上的一个点Q使PQ与OQ垂直。

d) 对圆C上的若干点重复b),c)。

e) 将所有的点Q依次用直线段连接起来。

解决方法:

% O点已知(-1,0);

%1 在基圆C上选取一个点P( m,n ),心里默画一条线在P点与圆C相切。。

%2 标出切线上的一个点Q(x0,y0)使PQ与OQ垂直。实际上要求出OQ的直线,再求出PQ与之的交点Q的坐标。

%3 将坐标Q与P和O点相连,

%4 对圆C上的若干点重复1 2 3 的步骤。

%5 如果要连接各点的话 ,注意此处的连接需要记录上一次交点的位置我设为了(m0 n0),再与本次的新交点Q(x0,y0)坐标相连。

MATLAB代码:

t =-3:0.1:3

ezplot("cos(t)","sin(t)");

axis([-2 2 -2 2]);

hold on

m0 = -1;

n0 = 0;

for i = t

m = cos(i);

n = sin(i);

x0 = (n+m*m/n-n/m)/(n/m+m/n);

% y0 = (n/m)*(n/m+m*m/n+n)/(n/m+m/n)+m*m/n+n;

y0 = n/m*x0+n/m;

x1 = [x0,-1]

y1 = n/m*x1+n/m;

plot(x1,y1);

hold on

x2 = [m,x0];

y2 = -1*m/n*x2+m*m/n+n;

plot(x2,y2);

hold on

if m0 ~= -1

plot([m0 x0],[n0 y0]);

end

m0 = x0;

n0 = y0;

end

grid on;

运行结果:

4f0e0014082a349606cd43fabf1dcb06.png

q 是四川师范派来的吗 巧我也是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值