EDIT: Я все еще не там. Я поставил щедрость на этот вопрос, потому что я действительно мог бы ответить на этот вопрос. Я обошел идею элементов, которые представляют планеты, которые не вращаются вокруг центра. Из-за этого вы можете пропустить шаги 1 & 2 и идти прямо к 3, чтобы попытаться помочь мне.Визуализируйте элементы JSON, используя некоторую математику
ORIGINAL: Я работаю над небольшим проектом. Это солнечная система, в которой планеты вращаются вокруг Солнца. Я считаю, что это симуляция, которая соответствует трем большим шагам.
Первый шаг: создать функциональную вращающуюся солнечную систему с 8 планетами.
Второй шаг: создать функцию, которая добавляет новые планеты, вращающиеся вокруг того же солнца, с одним нажатием кнопки с его особенности базируясь случайным образом (т.е. расстояние от Солнца, цвет планеты, размер планета и т. д.)
Я нахожусь на третьем шаге, и я не хочу, чтобы вещи были случайными. Третий шаг для меня, безусловно, самый сложный для меня, потому что у меня мало опыта работы с JSON. У меня есть данные со всех экзопланет за нашей солнечной системой с сайта НАСА, и я хочу добавить эти отдельные объекты (планеты) в симуляцию с функцией, которая добавляет объекты.
Мой вопрос к вам: Как бы мой код нужно смотреть, чтобы каждый отдельный запись, которую вы видите здесь, в массиве JSON в моем коде, как элемент, который расположен далеко от черного пятнышка на центре экран (см. скрипку) в случайном угле, так что это не все совпадают. В конце концов, я хочу иметь тысячи мелких пятнышек, которые представляют планеты, показанные на экране, где черное пятнышко в настоящее время только видимо, должно быть солнцем.
Это потому, что в моем файле JSON есть тысячи таких планет, и я хочу, чтобы они все вращались со своим соответствующим расстоянием от солнца «Расстояние [pc]», их соответствующий размер «Радиус планеты» [Радиус Юпитера ]». Конечно, науке не нужно было быть точным, но это должно быть несколько. Например, планета с наибольшим расстоянием [pc] (расстояние в парсеке) должна быть самой далекой, но все же быть в состоянии видеть на экране, даже если это всего лишь небольшое пятнышко.
Теперь я знаю, что для правильной позиции каждой планеты используется определенная математика, основанная на свойстве расстояния, поскольку они указаны как расстояние в парсеке, и какой-либо метод преобразования должен был бы разместить их на одном экране, тогда как они все еще видны.
Это мой код, но не все. Чтобы увидеть все это, нажмите ссылку, размещенную под этим кодом.
//this is an array that holds all of the json data
var arr= [
{
"rowid": 1,
"Host name": "11 Com",
"Number of Planets in System": 1,
"Planet Mass or M*sin(i)[Jupiter mass]": 19.4,
"Planet Radius [Jupiter radii]": null,
"Planet Density [g": {
"cm**3]": null
},
"Distance [pc]": 110.62,
"Effective Temperature [K]": 4742,
"Date of Last Update": "5/14/2014"
},
{
"rowid": 2,
"Host name": "11 UMi",
"Number of Planets in System": 1,
"Planet Mass or M*sin(i)[Jupiter mass]": 10.5,
"Planet Radius [Jupiter radii]": null,
"Planet Density [g": {
"cm**3]": null
},
"Distance [pc]": 119.47,
"Effective Temperature [K]": 4340,
"Date of Last Update": "5/14/2014"
},
{
"rowid": 3,
"Host name": "14 And",
"Number of Planets in System": 1,
"Planet Mass or M*sin(i)[Jupiter mass]": 4.8,
"Planet Radius [Jupiter radii]": null,
"Planet Density [g": {
"cm**3]": null
},
"Distance [pc]": 76.39,
"Effective Temperature [K]": 4813,
"Date of Last Update": "5/14/2014"
},
{
"rowid": 4,
"Host name": "14 Her",
"Number of Planets in System": 1,
"Planet Mass or M*sin(i)[Jupiter mass]": 4.64,
"Planet Radius [Jupiter radii]": null,
"Planet Density [g": {
"cm**3]": null
},
"Distance [pc]": 18.15,
"Effective Temperature [K]": 5311,
"Date of Last Update": "5/14/2014"
}];
//these variables hold specific properties
var distance;
var planetRadius;
var rowid;
var hostName;
for(var i=0;i<arr.length;i++){
rowid= arr[i]["rowid"];
distance= arr[i]["Distance [pc]"];
hostName= arr[i]["Host name"];
planetRadius=arr[i]["Planet Radius [Jupiter radii]"];//This is the idea how we should access the json objects, as your operations are not clear to us just I'm giving the idea
// Do what ever you want with individual object
if(planetRadius !== null){
// If planet radius not null do whatever you want.
}
}
Этот код содержит fiddle. Примечание: Эта ссылка содержит все 3000+ планет в коде, поэтому она может повлиять на вас с точки зрения загрузки. Просто введите 1 вместо 2 в URL-адресе, чтобы перейти к черновику, в котором есть всего несколько примеров планет hte, если ваш браузер действует на вас.
Что вы хотите делать с каждым объектом из массива объекта? –
Я имею в виду, хотите ли вы где-нибудь поместить или что-то нужно сделать? –
Извините, если я неясен, но я хочу, чтобы размер и расстояние каждого объекта от элемента солнца были основаны на «Радиус планеты» [Радиус Юпитера] »(если значение не равно нулю) и «Расстояние [pc]». О, я только что понял, что примеры, которые я дал, просто оказались пустыми. Это всего лишь 10% всех планет в массиве. Я сделаю об этом изменения. – Zhyohzhy