我嘗試在http://processing.org/得到兩點之間的距離是像Java,但不工作:處理應用程序中兩點之間的距離?
d = sqrt ((x2 - x1)**2 + (y2 - y1)**2);
的距離公式爲: http://www.purplemath.com/modules/xyplane/dist07b.gif
我嘗試在http://processing.org/得到兩點之間的距離是像Java,但不工作:處理應用程序中兩點之間的距離?
d = sqrt ((x2 - x1)**2 + (y2 - y1)**2);
的距離公式爲: http://www.purplemath.com/modules/xyplane/dist07b.gif
Java沒有一個指數操作符。請嘗試使用Math.pow(x,2)或x * x。
謝謝我明白了! d = Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); – user779848
根據http://processing.org/reference/這應該工作:
d = sqrt (pow (x2 - x1, 2) + pow (y2 - y1, 2));
雖然我不是,如果你在此處理或Java中需要完全清楚。
只需使用內置的加工類和方法:
PVector x = new PVector(random(width), random(height));
PVector y = new PVector(random(width), random(height));
System.out.println(getEuclidianDistance(x, y))
處理已經自帶了一個函數來計算在2D和3D兩個點之間的距離。只實現dist()
如通過移交這兩點你x
和y
參數在reference提到:
dist (x1, y1, x2, y2);
你有幾件事情有點不對勁。它應該是:
d = sqrt ((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1));
其他選項:
d = dist(x1,y1,x2,y2);
或
d = PVector.dist(new PVector(x1,y1),new PVector(x2,y2));
想象一下,你是距離作爲直角三角形的hypothenuse。 一側由X軸(長度爲x2-x1)定義,另一側由Y軸(其長度爲y2-y1)定義爲 。由於距離是hypothenuse, 你知道雙方,你簡單地套用勾股定理:
BC squared = AB squared + AC squared
BC = square root (AB squared + AC squared)
AC = (x2-x1) = dx
AB = (y2-y1) = dy
or
d = sqrt(dx*dx + dy*dy);
Math.pow()約爲10倍比使用X * X更加昂貴。 –