Форум программистов, компьютерный форум, киберфорум
Геометрия
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 12.09.2016
Сообщений: 22
1

Нужно понять СУТЬ формул и алгоритма

02.09.2018, 09:09. Показов 1097. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Пытаюсь разобраться с некоторыми формулами, но что-то не получается никак.. Формулы рабочие на практике, но хочется понять суть, почему получается правильный и красивый результат.

Цель формул ну и алгоритма - на основании числа строк и столбцов построить сферу. (Если строк и столбцов мало, то получается икосаэдр(на сколько я понял)). На выходе имеем точки (из которых состоит сфера) и у этих точках 3х мерные координаты. (x,y,z)

Привожу расчеты. и походу задаю вопросы вам, уважаемые математики..

код
обозначения
rows=8 строки
cols=4 столбцы
ix - вспомогательная переменная
iy - вспомогательная переменная

Далее идет цикл построения и еще 1 цикл вложенный в него. (перебор строк и для каждой строки перебор столбцов)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for(int i= 0; i<rows; i++)
  {
  ix = i/(rows-1)*Math.PI*2.0;   - вопрос 1.. что получает переменная ix в данном случае, зачем мы делим номер текущей строки на все строки -1 и зачем умножаем это все на 2 ПИ ? в чем обоснование ?
 
      for(int j= 0; j<cols; j++)
         {
         iy = (j/(cols-1) - 0.5)*Math.PI;       вопрос 2.. что получает переменная iy в данном случае, зачем мы делим номер текущего столбца на все столбцы -  зачем отнимает 0.5 и зачем умножаем это все на ПИ ? в чем обоснование ?
         }
 
 И вот теперь САМОЕ интересное и непонятное.. Идет расчет (x,y,z) последовательно по ходу циклов для каждой точки..
 x=Math.cos(iy)*Math.cos(ix) - как так??
 y= Math.sin(iy)
 z=Math.cos(iy)*Math.sin(ix)
 
все.. Вот как так получается и откуда это берется ? что такое ix и iy  и почему если умножить косинусы этих значений друг на друга мы получаем координату х в  3х мерном пространстве? почему у = sin(iy), почему z= произведению косинуса iy на синус ix ?? 
  }

Помогите разобраться..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.09.2018, 09:09
Ответы с готовыми решениями:

Понять суть интерфейсов
Подскажите новичку что то запутался с интерфейсами. Читаю книжку по C# и что то мне кажется...

Понять суть ООП
Всем привет! Я привык на процедурном писать теперь трудно перейти к ООП. Написал Класс для работы...

Понять суть задачи!
Using the 3 methods above, create an application that calculates the roots of an equation of second...

Не могу понять суть заданию
Добрый день! Уже несколько дней бьюсь даже не над решением задания, а над вообще его сутью. ...

3
Эксперт по математике/физике
10442 / 6926 / 3769
Регистрация: 14.01.2014
Сообщений: 15,912
02.09.2018, 12:10 2
Это формулы сферической системы координат, которые задают в данном случае декартовы координаты x, y, z точек сферы единичного радиуса по двум параметрам: ix - азимутальному и iy - полярному углам (с учетом их умножения на https://www.cyberforum.ru/cgi-bin/latex.cgi?2\pi и https://www.cyberforum.ru/cgi-bin/latex.cgi?\pi, соответственно). Отнимают https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{\pi }{2} для полярного угла, чтобы вести симметричный отсчет от https://www.cyberforum.ru/cgi-bin/latex.cgi?-\frac{\pi }{2} до https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{\pi }{2} (кстати, это делать совершенно не обязательно).
1
672 / 475 / 215
Регистрация: 06.09.2013
Сообщений: 1,306
02.09.2018, 12:24 3
Techno66, есть такое параметрическое представление поверхности, когда любая поверхность представляется как отображение плоскости (или ее части) в трехмерное пространство. В данном случае используется параметрическое представление сферической поверхности:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\left\{\begin{matrix}\\ x(u, v) = R cos(v) cos(u)\\ y(u, v) = R cos(v) sin(u)\\ z(u, v) = R sin(v)\end{matrix}\right.
https://www.cyberforum.ru/cgi-bin/latex.cgi?R - радиус поверхности (в вашем случае единица).
Параметры:
https://www.cyberforum.ru/cgi-bin/latex.cgi?u \in [0; 2\pi]
https://www.cyberforum.ru/cgi-bin/latex.cgi?v \in [-\frac {\pi} \2; \frac {\pi} \2]
Ваш алгоритм просто делит параметрическое пр-во на равное число шагов вдоль направлений и набирает соответствующие точки на сфере.

Хотя у вас оси Z и Y переставлены в отличие от стандартных формул, которые я привел, но сути это не меняет.
1
0 / 0 / 0
Регистрация: 12.09.2016
Сообщений: 22
02.09.2018, 12:29  [ТС] 4
спасибо, буду разбираться...
0
02.09.2018, 12:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.09.2018, 12:29
Помогаю со студенческими работами здесь

Не могу понять суть ошибки
код 1: from functools import reduce def intersect(a, b): return a= b= c=

Ну могу понять суть задачи
Вот задача.Я не пойму что делать с х1=х2=х3-1 и хi Найти S...

Не могу понять суть Header()
Доброго времени суток! Вот на досуге делаю лабы, в общем и целом запутался. Задание не сложное,...

Как понять суть задания
Добрый день. Пожалуста объясните тугодуму что требуеться сделать в задании &quot;Чтение из таблицы БД и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru