Я хочу рассчитать сферу (и визуализировать ее с помощью моей программы на JavaScript (визуализация работает успешно))
Я нашел такой вопрос: Нанесение точки на краю сферы а потом я разработал этот код:
for(var s = 0; s < 6; s++){
for(var t = 0; t <= 3; t++){
var x = d * Math.cos(s) * Math.sin(t);
var y = d * Math.sin(s) * Math.sin(t);
var z = d * Math.cos(t);
console.info("("+x+","+y+","+z+")");
}
}
Это выглядит как:
Это не похоже на сферу!
Поэтому я изменил s ++ на s + = 0.1 и t ++ на t + = 0.1.
Теперь это выглядит так:
Теперь это выглядит лучше, НО МОЯ БОЛЬШАЯ ПРОБЛЕМА: посередине линии должны пересекаться по оси Z. Думаю, вы лучше видите проблему на первом изображении.
Спасибо за ответы!
Обновлено:РЕШЕНИЕ: неотредактированный ответ от @MBo:
for(var ss = 0; ss < 24; ss++){
for(var tt = 0; tt <= 12; tt++){
s = Math.Pi * ss / 12;
t = Math.Pi * tt / 12;
...x y z stuff



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


s и t - углы полярных координат, они должны быть в диапазонах 2*Pi~6.28 и Pi~3.14 соответственно.
Так что делайте правильные шаги, например:
var lonsteps = 24
var latsteps = 12
for(var ss = 0; ss < lonsteps; ss++){
for(var tt = 0; tt <= latsteps; tt++){
s = 2 * Math.PI * ss / lonsteps;
t = Math.PI * tt / latsteps;
...x y z stuff
Ваш старый ответ работает, но ваш новый ответ не работает с отрицательными значениями. Пожалуйста, верните его обратно.
@Freddy C Хорошо, я забыл, что сдвиг на Pi / 2 требует обмена cos (t) и sin (t). Поменял обратно.
Большое спасибо! Я поставил вам зеленую галочку. Пожалуйста, также измените Math.Pi на Math.PI, это тоже ошибка.
Предполагается, что углы
sиtнаходятся в диапазоне[0, 2*PI]. Но вы относитесь к ним как к целым?