第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

試圖計算java中2個3維坐標之間的距離

試圖計算java中2個3維坐標之間的距離

紅顏莎娜 2021-09-03 13:02:09
所以我正在嘗試制作一個可以返回兩個坐標之間距離的程序。但我以這樣的字符串格式獲取坐標:23 60 600。23 是 X 軸,60 是 Y 軸,600 是 Z。要計算這些坐標之間的差異,我使用以下公式:距離 = √[ (xA ? xB)2 + (yA ? yB)2 + (zA ? zB)2 ]請注意,坐標可以為負所以最后我想這樣做(input) coordinate a: 20 10 500(input) coordinate b: -20 200 21(output) distance between a and b                               這是我嘗試過的,但過了一段時間后,我得出結(jié)論,它行不通。String[] parts1 = cord1.split(" ");String[] parts2 = cord2.split(" ");//  space    x    y    z//   [0]    [1]  [2]  [3]int v1 = Integer.parseInt(parts1[1]) - Integer.parseInt(parts2[1]) * 2;int v2 = Integer.parseInt(parts1[2]) - Integer.parseInt(parts2[2]) * 2;int v3 = Integer.parseInt(parts1[3]) - Integer.parseInt(parts2[3]) * 2;double conversion = v1 + v2 + v3;String a = String.valueOf(conversion);String b = a.replace("-","");double c = Integer.parseInt(b);System.out.println(c);double dist = Math.sqrt(c);它給出了這個錯誤:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3at codes.Main.main(Main.java:36)(第 36 行是:double c = Integer.parseInt(b);)
查看完整描述

1 回答

?
子衿沉夜

TA貢獻1828條經(jīng)驗 獲得超3個贊

這段代碼有幾個問題。最重要的是:


int v1 = Integer.parseInt(parts1[1]) - Integer.parseInt(parts2[1]) * 2;

int v2 = Integer.parseInt(parts1[2]) - Integer.parseInt(parts2[2]) * 2;

int v3 = Integer.parseInt(parts1[3]) - Integer.parseInt(parts2[3]) * 2;

這不會做(xA - xB)^2等等,這正是你所需要的。這只是將 的坐標加倍B。相反,你應(yīng)該有:


int v1 = Math.pow(Integer.parseInt(parts1[1]) - Integer.parseInt(parts2[1]), 2);

// same for v2 and v3

并且實數(shù)的平方總是非負的,因此您不需要刪除任何減號。


double dist = Math.sqrt(v1 + v2 + v3);


查看完整回答
反對 回復(fù) 2021-09-03
  • 1 回答
  • 0 關(guān)注
  • 369 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號