1
處理,使Java的使用環境。我試圖用蒙特卡羅方法來計算Pi的值。繪製圖表直播,向後切換位置隨着時間的推移
處理使用座標系統,其中,左上角爲原點,向右是正x軸,向下是正y軸。
我做了一個圖,繪製了pi的計算值,使用xCoordinate = xCoordinate + 1作爲計算中使用的隨機數(在飛鏢類比中也稱爲飛鏢)。然而,使用x座標= x座標+ 1作爲隨機數的增加來繪製圖形的數量已被證明是非常有限的方法,由於有限的水平空間,作爲點漂移關閉以點從屏幕。我怎樣才能使圖形的最新值始終添加到常數xCoordinate中,隨着隨機點數的增加,以前的值向後移動?
我的代碼目前是:
float inCircle = 0;
float inSquare = 0;
float xCoordinate = 600;
void setup() {
size(1200, 600);
background(50);
frameRate(50);
line(0, 360, 360, 360);
line(360, 0, 360, 360);
}
void draw() {
// inCircle and inSquare are updated
// ...
if (inSquare == 0.0) {
print("Calculating...");
} else {
println(inCircle/inSquare);
line(600, 300, 1200, 300); // x = 3.14
line(600, 345, 1200, 345); // x = 3
line(600, 25, 1200, 25); // x = 4
// Draw Pi estimate (y-axis) at xCoordinate
ellipse(xCoordinate, 300-(320*((inCircle/inSquare)-3.14159265)), 1, 1);
xCoordinate = xCoordinate + 1;
}
}
任何幫助,將不勝感激,謝謝提前。
如果我理解正確的話,你要繪製你的Pi的估計爲時間序列,其中在y軸您繪製Pi的估計,並在x軸你有用於數據點的數量的估計吧?當數據點的數量大於繪圖區域的寬度時,您只想繪製適合繪圖區域的最新k個點,對嗎? – Sentry
是的,這是正確的。 – StopReadingThisUsername
我冒昧地刪除了與此問題無關的代碼。但我建議大家展示一下你已經嘗試過,否則這個問題可能會被標記爲「過於寬泛」 – Sentry