作业帮 > 综合 > 作业

给出三点,如何在matlab 中画出三角形并涂色?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 03:12:58
给出三点,如何在matlab 中画出三角形并涂色?
新手啊.尽量用简单的语言.T
很简单,利用函数patch即可,自己可以help一下
========== 例如:
x = rand(3,1);
y = rand(3,1); %随机产生三个点的横坐标和纵坐标
patch(x,y,[1 0 0]); % 三角形,涂成红色,[1 0 0]表示RGB颜色值中的红色
再问: 如果不用矩阵呢?我先用方程y=f(x)做出了三条线段,能有别的办法把我用三条线段连成的封闭图形填色么?
再答: 一样的呀,点能做成封闭图形,难道线段就不是点构成的么? 假设你的三条线段的坐标分别是(x1,y1),(x2,y2),(x3,y3) (注:这里的x1不一定就是一个数,可以是一个列向量,对应的y1也要有那么长),将他们三个合起来,再绘制也一样的,即 x = [x1;x2;x3]; y = [y1;y2;y3]; patch(x,y,[1 0 0]);
再问: 不会用向量。。大师我贴给你看。。 function eqtri(a,b) x0=(a+b)/2; y0=a+((sqrt(3))/2)*abs(a-b); x1=[a,b]; y1=a; x2=linspace(a,x0,10); y2=a+(y0-a)*(x2-a)/(x0-a); x3=linspace(b,x0,10); y3=a+(y0-a)*(x3-b)/(x0-b); plot(x1,y1,x2,y2,x3,y3); line([a,b],[a,a]) 这样是不是很多余。。而且没法填充了。。?
再答: 填充只要有点就行了,没必要去自己画边。 function eqtri(a, b, col) % EQTRI try to plot a equilateral triangle % Input: (b,a) ,(a,a) are vertex, and length of edge is a+b % col is definited color, a vector has 3 elements % Output: a figure % Example: % eqtri(3,5); % eqtri(3,5,[0 1 0]); % green color % Write by Carrot, 2011-10-02 if nargin < 3, col = rand(1,3); end % randomly generated color x0 = (a + b)/2; y0 = a + ((sqrt(3))/2)*abs(a-b); x1 = a; y1 = a; x2 = b; y2 = a; patch([x0,x1,x2],[y0,y1,y2],col);