MATLAB:由四部分组成的彩色徽标(多边形)

MATLAB:由四部分组成的彩色徽标(多边形),matlab,polygon,Matlab,Polygon,我的任务是编写MATLAB代码,生成一个由4部分组成的徽标,如屏幕截图所示。左上角应为黑色,右下角应为白色。其他的 程序应随机选择两种颜色。 我采取了以下方法: clear all clc close all x = [1 4 1 4 1 6.5 7 7]; y = [3 4 5.5 5 8 7 8 3]; fill(x,y,'k') 这将创建左上角的黑色部分。我想知道这种方法是否足够好,如果足够好,下一步是什么。我想将这两个变量存储在一个形状对象或其他东西中(我不熟悉Matlab),然后

我的任务是编写MATLAB代码,生成一个由4部分组成的徽标,如屏幕截图所示。左上角应为黑色,右下角应为白色。其他的 程序应随机选择两种颜色。

我采取了以下方法:

clear all
clc
close all

x = [1 4 1 4 1 6.5 7 7];
y = [3 4 5.5 5 8 7 8 3];
fill(x,y,'k')

这将创建左上角的黑色部分。我想知道这种方法是否足够好,如果足够好,下一步是什么。我想将这两个变量存储在一个形状对象或其他东西中(我不熟悉Matlab),然后以某种方式旋转它。你能帮我吗?

你不需要旋转,只要使用对称性就可以了

clear all
clc
close all

x = [1 4 1 4 1 6.5 7 7];
y = [3 4 5.5 5 8 7 8 3]-3;
clrs=jet(10);
fill(x,y,'k')
hold on;
fill(2*max(x)-x,y,clrs(round(rand*10),:))
fill(x,-y,clrs(round(rand*10),:))
fill(2*max(x)-x,-y,'w')

完成这一切的最简单方法是确保您的中心点(即不同颜色相交的点)位于
[0,0]
。然后图形的旋转(90°的倍数)归结为更改轮廓的
x
和/或
y
值的符号

如果需要图形位于不同于
[0]
的点,只需在旋转后添加这些坐标即可

因此,从代码开始,您可以执行以下操作:

x = [1 4 1 4 1 6.5 7 7]-7;
y = [3 4 5.5 5 8 7 8 3]-3;
c = [5 6];
col = [0 0 0;
       rand(2,3);
       1 1 1];
fill( x+c(1), y+c(2),col(1,:)); hold on;
fill(-x+c(1), y+c(2),col(2,:));
fill( x+c(1),-y+c(2),col(3,:));
fill(-x+c(1),-y+c(2),col(4,:)); hold off;
编辑:澄清
col
c
变量

变量
col
包含要在rgb样式中使用的颜色,其中每行都是一种颜色
rand
[0,1]
范围内生成统一的随机数,这也是预期颜色值的位置。在上面的代码中,生成了一个
2x3
随机矩阵,这意味着两种随机颜色完全符合
col
矩阵


变量
c
包含图形的中心。如果查看绘图,中心将位于
[5 6]
(因此沿x轴为5,沿y轴为6)。您可以使用两个变量,但我认为将这两个变量放在一个变量中更容易处理。我个人也会对你的
x
y
变量做同样的处理,因为这样可以让你更容易地使用,但这只是一个选择问题。

非常感谢,这似乎很简单。但是你能帮我理解几个命令吗?我试图理解c变量是如何工作的。我看到您先将颜色设置为黑色,然后设置随机颜色(虽然不太了解括号中的2,3值),然后将其设置为白色?