По существу, у меня есть xyz-генератор, но мне нужно его сохранить и вспомнить значения позже. Моя проблема заключается в том, что мои ценности двойники, и я указал свой трехмерный массив как таковой, но я все еще получаю обратно ошибку:заполнение многомерного массива с использованием значений переменных и вложенных циклов
incompatible types: possible lossy conversion from double to int
Я думал, что показал, что мои ценности были двойники, и все переменные берутся из этого класс ... может быть, я пропустил что-то фундаментальное?
Итак:
- кто-то может указать на то, почему этот код не работает? и
- есть ли более простой или быстрый способ подойти к этой проблеме?
Я начал с 3D-массива, который должен содержать мои координаты xyz, хотя я открыт для альтернативных способов хранения моих данных. Координаты имеют не менее 3 знаков после запятой (0,000).
Я создаю новые точки, используя вложенные для циклов, и если новая точка соответствует определенному условию, я хочу, чтобы эти новые координаты xyz были добавлены в массив. Вот мой код до сих пор:
public class foo{
double x = 25, y = 25, z = 25;
double i, j, k, rx, ry, rz, dist;
double rmin=0.1-0.01, rmax = 0.1+0.01;
double ngrid;
double nmax = 100000;
double xgrid, ygrid, zgrid;
public void gridCoors(){
double[][][] threeD = new double [rx][ry][rz];
for (ngrid = 0 ; ngrid < nmax ; ngrid++){
for (i = -x ; i < x; i++) {
rx = i*0.01;
for(j = -y; j < y; j++){
ry = j*0.01;
for(k = -z; k < z; k++){
rz = z*0.01;
dist = sqrt(rx*rx + ry*ry + rz*rz);
if (dist > rmin && dist < rmax){
xgrid = rx;
ygrid = ry;
zgrid = rz;
threeD.add(new gridCoors(rx,ry,rz));