如果你希望你的繪圖與窗口縮放比例,你會需要你的基地所有座標關閉width
和height
變量。
例如,假設我畫一個圓圈200x200
一個200x200
窗口內:
size(200, 200);
ellipse(100, 100, 200, 200);
如果我那麼窗口的大小更改爲400x400
,然後我不得不改變我的參數突入ellipse()
功能:
size(400, 400);
ellipse(200, 200, 400, 400);
這可能是惱人的(如您遇到),所以最好只是你的基礎參數關閉width
和height
變量。這樣,只要你的窗口大小發生變化,處理就會爲你進行計算,並利用你的窗口縮放圖形。
size(600, 600);
ellipse(width/2, height/2, width, height);
這僅僅是一個例子,但對你的過程將是相同的:去並修改每一個值是基於關閉width
和height
變量而不是硬編碼的數字。
更多信息可以在這裏找到:Using Variables - HappyCoding.io
(全面披露:我寫的教程,但我認爲這說明了你問什麼有關)
編輯:你問起scale()
方法,所以我會在下面解釋。但是如果你想把你的圖畫的大小放在窗口的大小上,那麼你應該使用上面的方法!但由於這是一項家庭作業,你只能按照老師的說法進行。反正...
讓我們看一個簡單的程序:
size(100, 100);
ellipse(50, 50, 10, 10);
此代碼只需創建一個100x100
大小的窗口,然後繪製在中心的小橢圓:
如果我們想讓這個圓圈更大,我們可以使用scale()
函數。您可以將scale()
函數看作自動將您傳遞給繪圖函數(如ellipse()
或rect()
)的每個參數乘以通過scale()
函數的任何數字。
例如,該代碼由2
乘以每個數字:
size(100, 100);
scale(2);
ellipse(50, 50, 10, 10);
圓是現在的兩倍,但它也不再是中心。這是因爲我們也將50,50
(窗口的中心)乘以2
得到100,100
(窗口的右下角)。爲了解決這個問題,我們要麼需要改變50,50
:
size(100, 100);
scale(2);
ellipse(25, 25, 10, 10);
或者,我們可以使用translate()
功能之前移動座標我們做規模:
size(100, 100);
translate(50, 50);
scale(2);
ellipse(0, 0, 10, 10);
無論哪種方式是好的,所以這真的取決於哪一個對你更有意義。現在我們有一個大的中心圈,儘管我們仍然將其大小設置爲10,10
。
在未來,請提供[MCVE]的代碼而不只是少數斷開線路。現在很難確切地告訴你要問什麼。 –