這樣做這一切的最簡單的方法,就是要確保您的中心點(即在不同顏色的交匯點) ,定位於[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;
編輯:澄清了col
和c
變量。
變量col
包含要在rgb樣式中使用的顏色,其中每行都是顏色。 rand
會在[0,1]
範圍內生成均勻的隨機數字,這也是顏色值預期爲的位置。在上面的代碼中生成了一個隨機矩陣,所以這意味着2個隨機顏色完全符合col
矩陣。
變量c
包含圖形的中心。如果你看圖,中心將在[5 6]
(所以5沿x軸,6沿y軸)。你可以使用兩個變量,但我認爲把它們放在一個變量中更容易處理。我個人會爲你的x
和y
變量做同樣的事情,因爲這可以讓你更容易地使用rotation matrices,但這只是一個選擇問題。
非常感謝,這似乎是非常簡單的。但是,請你幫助我理解一些命令嗎? 我想了解c變量是如何工作的。我看到你先設置一個顏色爲黑色,然後設置一個隨機顏色(不太理解括號中的2,3個值),然後將其設置爲白色? – 2012-02-26 14:32:11