MATLAB:四部分颜色标志(多边形)

时间:2012-02-26 14:04:59

标签: matlab polygon

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

我采取了以下方法:

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)并以某种方式旋转它。你能帮帮我吗?

2 个答案:

答案 0 :(得分:5)

您不需要旋转,只需使用对称

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')

答案 1 :(得分:4)

最简单的方法就是确保你的中心点(即不同颜色相遇的点)位于[0,0]。然后,图形的旋转(90°的倍数)会向下变化,以更改轮廓的x和/或y值的符号。

如果您需要图形与[0 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;

修改:澄清colc个变量。

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

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