Старый 18.02.2012, 16:52   #1
alexk23
Собеседник
 
Регистрация: 18.02.2012
Сообщения: 13
alexk23 отключил(а) отображение уровня репутации
По умолчанию Работа со ШЭ (c++)

добрый день!
начиная изучать астрологию, чтобы понять что к чему (а не пользоваться сразу готовым), решил по ходу изучения писать программку.
на сайте (http://astro-future.narod.ru/future/2.html) есть статья - Астрология с калькулятором. По ней предлагается вычислить карту.
И так.
Цитата:
5 октября 1989 г. 20 часов местного времени, г. Ленинград (ГД = 30° 03' восточной долготы и ГШ = 59° 47' северной широты
)
GMT получился 17 часов.
вот тут же у меня первая загвоздка.
Вот мой код:
Код:
inline double swe_hour(int ihour, int imin, int isec) { return ihour + imin / 60 + isec / 3600; } int _tmain(int argc, _TCHAR* argv[]) { double jday = swe_julday(1989, 10, 5, swe_hour(17,0,0), SE_GREG_CAL); char serr[255], splanet[20]; double te, x2[6]; long iflag, iflgret; for(int planet = SE_SUN; planet <= SE_CHIRON; planet++){ if (planet == SE_EARTH) continue; iflgret = swe_calc_ut(jday, planet, SEFLG_SPEED, x2, serr); swe_get_planet_name(planet, splanet); printf("%s\t%11.6f\n", splanet, x2[0]); } getch(); return 0; }

программа почти списана с примера, входящего с ШЭ.
но получаю абсолютно не те значения, что в статье.

попытался рассчитать карту в программе ASTROLOG - всё нормально (различия со статьей есть, но незначительные).

вот, что я получаю на выходе:
Код:
Код:
Sun 192.432372 Moon 255.815954 Mercury 175.998255 Venus 236.666234 Mars 190.469609 Jupiter 99.994518 Saturn 277.785320 Uranus 271.616312 Neptune 279.665657 Pluto 223.835529 mean Node 323.083168 true Node 324.521429 mean Apogee 206.637686 osc. Apogee 217.489349 Chiron 0.000000

подскажите, пожалуйста, где я ошибся?
может быть есть литература на русском по ШЭ? здесь по-моему есть программисты, использующие ШЭ.

заранее спасибо!
alexk23 вне форума   Ответить с цитированием
Старый 19.02.2012, 02:36   #2
afterforever
Собеседник
 
Аватар для afterforever
 
Регистрация: 18.02.2012
Адрес: Germany
Сообщения: 57
afterforever отключил(а) отображение уровня репутации
По умолчанию

Вы нигде не ошиблись и всё сделали абсолютно правильно.

Просто нужно перевести абсолютные градусы в относительные и из десятичной системы(с которой проще и удобнее программировать) в систему градусы-минуты(привычную для отображения):
0 - 30 Овен,
30 - 60 Телец
180 - 210 Весы,
либо математически:
192,43 % 30 = 6, добавляем единицу, получаем знак: Весы.
Т.е. Солнце у нас находится в 12-ти градусов Весов. Теперь, смотрим минуты.
Кстати, чтобы сразу правильно округлялось с тем, чтобы отбрасывать всё, что за запятой, рекомендую добавить 1/120 к первоначальному значению. Теперь, осталось трансформировать это значение в минуты:
0
.432372 + 0.0083333(примерно 1/120) = 0.440705
И умножаем на 60, чтобы получить количество минут: 0.440705 * 60 = 26.44, т.е. 26 минут
Итого у нас получилось 12 градусов и 26 минут Весов, как собственно и в примере.
Так поступаем со всеми координатами.

Вот, примерно так будет выглядить функция, делающая это автоматически и заполняющая по указателю 10 char символов координатами(в С стиле):

Код:
#define ROUNDING (double)(1/120) void to_degree_sign(char* output, double pos) { position += ROUNDING; int sign = (int)(position/30); int degree = (int)(position) - sign * 30; double min = (position - (int)(position)); int minute = (int)(min * 60); char* zodiak[12] = {"ar", "ta", "ge", "cn", "le", "vi", "li", "sc", "sa", "cp", "aq", "pi"}; sprintf(output, "%2d° %2s %2d'", degree, zodiak[sign], minute); }

Вроде бы lordwilex(где-то были Швейцарские эфемериды по-русски) начинал переводить, но какова стадия перевода и насколько он готов я не знаю.
__________________
Что завтра будет - неизвестно,
Хотя нетрудно предсказать,
О, нам нечего терять.
Какая жизнь - такие песни.
А жизнь нелепа и смешна,
Дальше - тишина,
Не объехать и не убежать.

(с) Ария

Последний раз редактировалось afterforever, 19.02.2012 в 02:55.
afterforever вне форума   Ответить с цитированием
Старый 19.02.2012, 03:11   #3
LordWilex
В отпуске
 
Аватар для LordWilex
 
Регистрация: 01.06.2008
Адрес: Таганрог
Сообщения: 28,983
LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000
По умолчанию

Цитата:
Сообщение от afterforever
Вы нигде не ошиблись и всё сделали абсолютно правильно.


Цитата:
Сообщение от afterforever
Вроде бы lordwilex(где-то были Швейцарские эфемериды по-русски) начинал переводить, но какова стадия перевода и насколько он готов я не знаю.
Пока этот проект заброшен, но надеюсь что таки до конца года доведу до ума
__________________
В астрологии Деда Мороза нет
LordWilex вне форума   Ответить с цитированием
Старый 19.02.2012, 13:01   #4
UBER
Собеседник
 
Аватар для UBER
 
Регистрация: 15.07.2008
Адрес: Moscow
Сообщения: 6,113
UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000
По умолчанию

На сайте www.lab-1m.ru есть исходники на с++ (кажется именно ++) для проги для составления космограмм (без сетки домов). Естественно есть и сама скомпилированная прога. Называется "Домашний Астролог".
__________________
Он смерил Берлиоза взглядом, сквозь зубы пробормотал что-то вроде: "Раз, два... Меркурий во втором доме... луна ушла... шесть -- несчастье... вечер -- семь..."
- и громко и радостно объявил: -- Вам отрежут голову!
UBER вне форума   Ответить с цитированием
Старый 19.02.2012, 13:35   #5
LordWilex
В отпуске
 
Аватар для LordWilex
 
Регистрация: 01.06.2008
Адрес: Таганрог
Сообщения: 28,983
LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000
По умолчанию

Цитата:
Сообщение от UBER
На сайте www.lab-1m.ru есть исходники на с++ (кажется именно ++) для проги для составления космограмм (без сетки домов). Естественно есть и сама скомпилированная прога. Называется "Домашний Астролог".
А тут их еще больше
http://forum.argo-school.ru/showthre...?t=4780&page=2
__________________
В астрологии Деда Мороза нет
LordWilex вне форума   Ответить с цитированием
Старый 19.02.2012, 20:41   #6
alexk23
Собеседник
 
Регистрация: 18.02.2012
Сообщения: 13
alexk23 отключил(а) отображение уровня репутации
По умолчанию

Итак, продолжаю исследования..
Данная программа по-минутно рассчитывает положения небесных тел. Задача была в следующем, узнать "скорость", т.е. за какой промежуток времени планеты меняют своё положение. Результаты неожиданные (для меня :))..

Код:
... double plarr[9]; // массив для девяти планет // найдем минимальное время в мин. //---- заполним массив координат на 3:00 for (int planet = SE_SUN; planet <= SE_PLUTO; planet++){ swe_calc_ut(swe_julday(2004, 03, 29, swe_hour(03, 00, 00), SE_GREG_CAL), planet, SEFLG_TRUEPOS, x2, serr); plarr[planet] = x2[0]; } //---- int min = 1; // счетчик минут bool isdone = 0; // будем расчитывать координаты, пока не увидим хотя бы одно изменение while(!isdone) { for(int planet = SE_SUN; planet <= SE_PLUTO; planet++){ swe_calc_ut(swe_julday(2004, 03, 29, swe_hour(03, min, 00), SE_GREG_CAL), planet, SEFLG_TRUEPOS, x2, serr); if (plarr[planet] < x2[0]){ swe_get_planet_name(planet, splanet); isdone = 1; break; } min++; } } printf("%d MIN, PLANET = %s", min, splanet);

в итоге на выходе следующее:
Код:
61 MIN, PLANET = Sun
т.е. координаты солнца поменялись на 61-й минуте, или в 4:01

возникает резонный вопрос..
за счет чего получается многовариантность на более коротких промежутках времени? пример - хорарная астрология (где рассчитывается точное время вопроса). не за чет домов ли?

спасибо!
alexk23 вне форума   Ответить с цитированием
Старый 19.02.2012, 21:30   #7
UBER
Собеседник
 
Аватар для UBER
 
Регистрация: 15.07.2008
Адрес: Moscow
Сообщения: 6,113
UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000UBER репутация выше +2000
По умолчанию

Цитата:
Сообщение от alexk23
Итак, продолжаю исследования..
Данная программа по-минутно рассчитывает положения небесных тел. Задача была в следующем, узнать "скорость", т.е. за какой промежуток времени планеты меняют своё положение. Результаты неожиданные (для меня :))..

Код:
... double plarr[9]; // массив для девяти планет // найдем минимальное время в мин. //---- заполним массив координат на 3:00 for (int planet = SE_SUN; planet <= SE_PLUTO; planet++){ swe_calc_ut(swe_julday(2004, 03, 29, swe_hour(03, 00, 00), SE_GREG_CAL), planet, SEFLG_TRUEPOS, x2, serr); plarr[planet] = x2[0]; } //---- int min = 1; // счетчик минут bool isdone = 0; // будем расчитывать координаты, пока не увидим хотя бы одно изменение while(!isdone) { for(int planet = SE_SUN; planet <= SE_PLUTO; planet++){ swe_calc_ut(swe_julday(2004, 03, 29, swe_hour(03, min, 00), SE_GREG_CAL), planet, SEFLG_TRUEPOS, x2, serr); if (plarr[planet] < x2[0]){ swe_get_planet_name(planet, splanet); isdone = 1; break; } min++; } } printf("%d MIN, PLANET = %s", min, splanet);

в итоге на выходе следующее:
Код:
61 MIN, PLANET = Sun
т.е. координаты солнца поменялись на 61-й минуте, или в 4:01

возникает резонный вопрос..
за счет чего получается многовариантность на более коротких промежутках времени? пример - хорарная астрология (где рассчитывается точное время вопроса). не за чет домов ли?

спасибо!

Долго не мог понять про что вопрос, оказалось про астрологию, а не про программирование.
За счет домов, конечно!
__________________
Он смерил Берлиоза взглядом, сквозь зубы пробормотал что-то вроде: "Раз, два... Меркурий во втором доме... луна ушла... шесть -- несчастье... вечер -- семь..."
- и громко и радостно объявил: -- Вам отрежут голову!
UBER вне форума   Ответить с цитированием
Старый 20.02.2012, 04:46   #8
LordWilex
В отпуске
 
Аватар для LordWilex
 
Регистрация: 01.06.2008
Адрес: Таганрог
Сообщения: 28,983
LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000
По умолчанию

Цитата:
Сообщение от alexk23
Итак, продолжаю исследования..
Данная программа по-минутно рассчитывает положения небесных тел. Задача была в следующем, узнать "скорость", т.е. за какой промежуток времени планеты меняют своё положение. Результаты неожиданные (для меня :))..

Код:
... double plarr[9]; // массив для девяти планет // найдем минимальное время в мин. //---- заполним массив координат на 3:00 for (int planet = SE_SUN; planet <= SE_PLUTO; planet++){ swe_calc_ut(swe_julday(2004, 03, 29, swe_hour(03, 00, 00), SE_GREG_CAL), planet, SEFLG_TRUEPOS, x2, serr); plarr[planet] = x2[0]; } //---- int min = 1; // счетчик минут bool isdone = 0; // будем расчитывать координаты, пока не увидим хотя бы одно изменение while(!isdone) { for(int planet = SE_SUN; planet <= SE_PLUTO; planet++){ swe_calc_ut(swe_julday(2004, 03, 29, swe_hour(03, min, 00), SE_GREG_CAL), planet, SEFLG_TRUEPOS, x2, serr); if (plarr[planet] < x2[0]){ swe_get_planet_name(planet, splanet); isdone = 1; break; } min++; } } printf("%d MIN, PLANET = %s", min, splanet);

в итоге на выходе следующее:
Код:
61 MIN, PLANET = Sun
т.е. координаты солнца поменялись на 61-й минуте, или в 4:01


Я тоже ничего не понимаю. Минут 15 медитировал на Ваш код, - вроде бы все верно, но координаты планет по этому алгоритму должны меняться на каждом шаге цикла, хоть на тысячную долю градуса, но должны меняться.

Единственно где может быть ошибка - это функция "swe_hour()" , я что-то не припомню её в составе ШЭ, как я понимаю - Вы её сами написали?

Возможно в каком-то месте эта функция неосторожно округляет время или возвращает тип int. Советую часы/минуты/секунды переводить в десятичную долю часа так:

double Час = час + минута/60 + секунда/3600


Если ошибка не в этом, тогда я ничего не понимаю

Цитата:
Сообщение от alexk23

возникает резонный вопрос..
за счет чего получается многовариантность на более коротких промежутках времени? пример - хорарная астрология (где рассчитывается точное время вопроса). не за чет домов ли?

спасибо!
Да, прежде всего за счет раскладки домов!
__________________
В астрологии Деда Мороза нет
LordWilex вне форума   Ответить с цитированием
Старый 20.02.2012, 06:44   #9
LordWilex
В отпуске
 
Аватар для LordWilex
 
Регистрация: 01.06.2008
Адрес: Таганрог
Сообщения: 28,983
LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000
По умолчанию

Заметил в первом вашем сообщении функцию "swe_hour()" и понял в чем ошибка.

Код:
#i nclude <stdio.h> double swe_hour(int ihour, int imin, int isec) { return ihour + imin / 60.0 + isec / 3600.0; } int main () { printf("%f ", swe_hour(3, 15, 20)); }



В си нужно явно указывать десятичную часть числа хотя бы в одном операнде, иначе компилятор воспринимает его как целочисленный тип.

Если сделать так:

Код:
double swe_hour(int ihour, int imin, int isec) { return ihour + imin / 60 + isec / 3600; }

то swe_hour(3, 15, 20) - вернет просто 3.0 часа без учета десятичной части.

а если так
Код:
double swe_hour(int ihour, int imin, int isec) { return ihour + imin / 60.0 + isec / 3600.0; }
функция вернет 3.255556
__________________
В астрологии Деда Мороза нет
LordWilex вне форума   Ответить с цитированием
Старый 21.02.2012, 23:16   #10
alexk23
Собеседник
 
Регистрация: 18.02.2012
Сообщения: 13
alexk23 отключил(а) отображение уровня репутации
По умолчанию

Привет! Отвлекся тут на пару дней..

Действительно, ошибка в swe_hour
Это из разряда трудно-отыскиваемых багов

зы

еще, как вариант можно сделать так:
Код:
(float ihour, float imin, float isec)

большое вам спасибо, LordWilex!
alexk23 вне форума   Ответить с цитированием
Старый 22.02.2012, 11:38   #11
afterforever
Собеседник
 
Аватар для afterforever
 
Регистрация: 18.02.2012
Адрес: Germany
Сообщения: 57
afterforever отключил(а) отображение уровня репутации
По умолчанию

Я в таких случаях вообще всегда делаю кастинг, это мой способ избегать таких ошибок:

Код:
struct date { int second; int minute; int hour; int day; int month; int year; }; #define tdate struct date double calculated_hour(const tdate *date){ return (double)date->hour + (double)date->minute/60 + (double)date->second/3600; };

Интересно, что эту функцию, наверное пишут все или почти все, кто работает с швейцарскими эфемеридами
__________________
Что завтра будет - неизвестно,
Хотя нетрудно предсказать,
О, нам нечего терять.
Какая жизнь - такие песни.
А жизнь нелепа и смешна,
Дальше - тишина,
Не объехать и не убежать.

(с) Ария
afterforever вне форума   Ответить с цитированием
Старый 30.03.2012, 18:37   #12
alexk23
Собеседник
 
Регистрация: 18.02.2012
Сообщения: 13
alexk23 отключил(а) отображение уровня репутации
По умолчанию

Доброго!
чтоб не засорять форум, напишу в своей теме...
вот выбрал время продолжить астро-исследования. Наткнулся на одну проблему. в статье "астрология с калькулятором" прочитал, что если аспект получается более 180 град. нужно вычитать из него 360! Но, заметил, что такие "вычтенные" аспекты работают как-то по-другому (пытаюсь прогнозировать биржу). Т.е. при этом 90 град и 270 град для программы будет один и тот же аспект)) хотя, я думаю, что это неправильно...
Разъясните, пожалуйста, ситуацию с аспектами более 180 град...
и еще.. я вычисляю аспекты, учитывая ретроградность планет, если ШЭ показывают отрицательную скорость планеты, значит она ретроградна. Есть ли какие-нить особенности в вычислениях аспектов с такими планетами (просто моя программа, "запоминает флаг" ретроградности и рассчитывает аспект как обычный).

ps
кстати, я перешел на C#, т.к. этот язык мне показался более мощным и удобным. Если кого заинтересует, алгоритмы могу скинуть.

С уважением.
alexk23 вне форума   Ответить с цитированием
Старый 30.03.2012, 21:34   #13
LordWilex
В отпуске
 
Аватар для LordWilex
 
Регистрация: 01.06.2008
Адрес: Таганрог
Сообщения: 28,983
LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000
По умолчанию

Цитата:
Сообщение от alexk23
Доброго!
чтоб не засорять форум, напишу в своей теме...
вот выбрал время продолжить астро-исследования. Наткнулся на одну проблему. в статье "астрология с калькулятором" прочитал, что если аспект получается более 180 град. нужно вычитать из него 360! Но, заметил, что такие "вычтенные" аспекты работают как-то по-другому (пытаюсь прогнозировать биржу). Т.е. при этом 90 град и 270 град для программы будет один и тот же аспект)) хотя, я думаю, что это неправильно...
Разъясните, пожалуйста, ситуацию с аспектами более 180 град...
и еще.. я вычисляю аспекты, учитывая ретроградность планет, если ШЭ показывают отрицательную скорость планеты, значит она ретроградна. Есть ли какие-нить особенности в вычислениях аспектов с такими планетами (просто моя программа, "запоминает флаг" ретроградности и рассчитывает аспект как обычный).

ps
кстати, я перешел на C#, т.к. этот язык мне показался более мощным и удобным. Если кого заинтересует, алгоритмы могу скинуть.

С уважением.

По поводу аспектов, на басиках у меня есть такая функция на все случаи жизни , думаю Вы без проблем перепишите её на C#:

Код:
Public Function StartPoint(SPoint, pl) ' Возвращает угловое расстояние между точками SPoint и pl ' в диапазане от 0 до 360 градусов ' Иными словами, - возвращает долготу точки pl в ' зодиаке, в котором за нулевой градус принята точка SPoint. ' Очень важная функция, полезная во многих приложениях астрологии!!! ' На пример, если мы за SPoint возьмем координату Восходящего узла ' а за pl любую планету, то получим её координату в Драконическом зодиаке ' Если за SPoint приймем Асц, - то получим раскладку домов (правда равнодомную) ' Если за SPoint принять Луну, а за pl Солнце, и умножить это на 100/360 то получим ' фазу Луны в процентах. ' Так же, в статистических исследованиях измерять угловые расстояния в ' системе 360 градусов гораздо практичней и информативней, чем в традиционных аспектах Dim d As Double d = pl - SPoint If d < 0 Then d = d + 360 If d > 360 Then d = d - 360 StartPoint = d End Function

Если в первый аргумент поставить более медленную планету, а во второй более быструю, а от результата отнять 180 градусов - получится число в диапазоне от -180 до +180. Собственно говоря если число больше меньше - это означает расходящийся аспект угловое расстояние, если больше - то сходящийся. А модуль этого числа - просто аспект угловое расстояние.

В случае ретроградности одной из планет - просто сравниваем скорости и в первый аргумент ставим более быструю планету. Однако, тут нужно учесть, что этот подход работает только в случае небольших орбов (если у Вас орбы больше градуса - я бы не рискнул), если орб слишком большой, то пока дело дойдет до схождения аспекта - может случится так, что скорость одной из планет поменяется или ретроградное движение смениться на директное и аспект так и не сойдется. Чтобы эти эффекты учесть - нужно придумывать вот такой алгоритм, если у вас есть время/желание - можете этим заняться.

К тому же в традиционной астрологии аспекты через границу знака не считаются. Например, если одна из планет находится в 30 градусе Льва, а другая в 30 градусе стрельца - то это трин, а эслэ одна из планет находится в 30 градусе льва, а вторая в первом градусе козерога, - то эт уже не трин, а просто угловое расстояние близкое к 120 градусам, не смотря на то, что разница между 2 примерами всего в 1 градус
__________________
В астрологии Деда Мороза нет

Последний раз редактировалось LordWilex, 30.03.2012 в 21:51.
LordWilex вне форума   Ответить с цитированием
Старый 30.03.2012, 21:47   #14
LordWilex
В отпуске
 
Аватар для LordWilex
 
Регистрация: 01.06.2008
Адрес: Таганрог
Сообщения: 28,983
LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000
По умолчанию

P.S. А чем собственно говоря Вас стандартная функция swe_difdeg2n() не устраивает?
__________________
В астрологии Деда Мороза нет
LordWilex вне форума   Ответить с цитированием
Старый 30.03.2012, 22:14   #15
alexk23
Собеседник
 
Регистрация: 18.02.2012
Сообщения: 13
alexk23 отключил(а) отображение уровня репутации
По умолчанию

LordWilex, спасибо за ответы!
Я пока не полностью разобрался в ШЭ, поэтому не знаю ф-ии swe_difdeg2n(). Пойду читать мануал ;)

Насчет аспектов всё понял, не всё так просто, оказывается...
alexk23 вне форума   Ответить с цитированием
Старый 30.03.2012, 22:56   #16
LordWilex
В отпуске
 
Аватар для LordWilex
 
Регистрация: 01.06.2008
Адрес: Таганрог
Сообщения: 28,983
LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000
По умолчанию

Цитата:
Сообщение от LordWilex
Если в первый аргумент поставить более медленную планету, а во второй более быструю, а от результата отнять 180 градусов - получится число в диапазоне от -180 до +180.
Извините, я тут тупанул, это не верно. Если мы от результата просто отнимим 180, то получится черте что

Если функция StartPoint возвращает число меньшее 180 - то ничего не меняем. А если больше, то от 360 отнимаем результат

Например, если функция вернула 179 градусов, то ничего не меняем - это и есть аспект.

А если вернула 181, то от 360 отнимаем 181 и (если нам интересно сходящийся аспект или расходящийся и в первом аргументе стоит более быстрая планета) - просто меняем знак на противоположный.

360-181 = 179
__________________
В астрологии Деда Мороза нет
LordWilex вне форума   Ответить с цитированием
Старый 31.03.2012, 08:21   #17
alexk23
Собеседник
 
Регистрация: 18.02.2012
Сообщения: 13
alexk23 отключил(а) отображение уровня репутации
По умолчанию

Цитата:
К тому же в традиционной астрологии аспекты через границу знака не считаются. Например, если одна из планет находится в 30 градусе Льва, а другая в 30 градусе стрельца - то это трин, а эслэ одна из планет находится в 30 градусе льва, а вторая в первом градусе козерога, - то эт уже не трин, а просто угловое расстояние близкое к 120 градусам, не смотря на то, что разница между 2 примерами всего в 1 градус
вот оно как.. я в своей программе не учитываю дома, как понял - зря..
но тут дело вот в чем биржа "размазана" по всем миру :( А при расчете домов необходимо указать конкретные координаты местности... есть, конечно, основные "центры", но они совсем небольшой промежуток времени работают отдельно, практически всегда одновременно работают два и более центра. Что делать в этом случае? (как вариант считать астро-карту для каждого работающего в данный момент центра и как-то всё это сопоставлять.. жуть, конечно, но другого пока не придумывается)
и ещё... ШЭ поддерживают большое кол-во разных систем домов.. какую выбрать? Или только экспериментально? :)
alexk23 вне форума   Ответить с цитированием
Старый 31.03.2012, 10:46   #18
LordWilex
В отпуске
 
Аватар для LordWilex
 
Регистрация: 01.06.2008
Адрес: Таганрог
Сообщения: 28,983
LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000
По умолчанию

Цитата:
Сообщение от alexk23
вот оно как.. я в своей программе не учитываю дома, как понял - зря..
Кажется мы говорим на разных языках. Я не про дома, я про знаки. Попробую перефразировать: в аспекте находятся только те планеты, которые находятся в знаках, которые в аспекте друг по отношению к другу.


А раскладка домов к аспектам никакого отношения не имеет


Цитата:
Сообщение от alexk23
но тут дело вот в чем биржа "размазана" по всем миру :( А при расчете домов необходимо указать конкретные координаты местности... есть, конечно, основные "центры", но они совсем небольшой промежуток времени работают отдельно, практически всегда одновременно работают два и более центра. Что делать в этом случае? (как вариант считать астро-карту для каждого работающего в данный момент центра и как-то всё это сопоставлять.. жуть, конечно, но другого пока не придумывается)

Тут всего 4 варианта:
1. У биржи в любом случае должен быть юридический адрес или место регистрации/место основания . Она же не возникла из ниоткуда, а любые события на бирже - это транзиты к карте её создания. Но в этом случае Вам нужно где-то взять карту её основания и хорошо подумать над тем, какие методы будите использовать, чтобы адекватно соотнести карты событий с картой биржы. (более чем разумное и теоретически обоснованное решение).

2. Для каждой карты события брать свои координаты + какая-то стат обработка (не знаю, какая, тут все индивидуально - все зависит от решаемой задачи).

3. Либо для каждой карты указывать свои географические координаты и брать усредненную раскладку домов получится некое подобие средней Девисона - тоже может прокатить (или не прокатить), это достаточно спорно


4. Ну и альтернативный вариант из той же серии - можно использовать средние географические координаты (но это тоже чисто экспериментально, сомнительно, спорно и т.д., но вполне может сработать).

5. Комбинация 3 и 4 варианта на свой страх и риск.

Вариант с "центрами" имхо не катит... хотя все зависит от структуры базы, вполне может случиться так, что в среднем координаты этих центров будут близки к средним координатам всей базы - тогда все автоматом сводится к 4 варианту.

Цитата:
Сообщение от alexk23
и ещё... ШЭ поддерживают большое кол-во разных систем домов.. какую выбрать? Или только экспериментально? :)
Ну это вопрос философский - каждый астролог решает для себя его сам но на нашем форуме особой популярностью пользуется система Региомонтана
__________________
В астрологии Деда Мороза нет
LordWilex вне форума   Ответить с цитированием
Старый 01.04.2012, 14:46   #19
alexk23
Собеседник
 
Регистрация: 18.02.2012
Сообщения: 13
alexk23 отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Кажется мы говорим на разных языках. Я не про дома, я про знаки. Попробую перефразировать: в аспекте находятся только те планеты, которые находятся в знаках, которые в аспекте друг по отношению к другу.
да, это я чуть тупанул насчет домов :(
насчет знаков немного не понял.
Допустим есть две планеты. Вычисляем сначала разницу в абсолютных координатах. Допустим получилось 120. Далее смотрим в каких знаках находятся планеты, и, если углы планет в этих знаках равны (как в вашем примере про аспект 120 град.), значит это аспект.
Я правильно понял?
alexk23 вне форума   Ответить с цитированием
Старый 02.04.2012, 02:42   #20
LordWilex
В отпуске
 
Аватар для LordWilex
 
Регистрация: 01.06.2008
Адрес: Таганрог
Сообщения: 28,983
LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000LordWilex репутация выше +1000
По умолчанию

Цитата:
Сообщение от alexk23
да, это я чуть тупанул насчет домов :(
насчет знаков немного не понял.
Допустим есть две планеты. Вычисляем сначала разницу в абсолютных координатах. Допустим получилось 120. Далее смотрим в каких знаках находятся планеты, и, если углы планет в этих знаках равны (как в вашем примере про аспект 120 град.), значит это аспект.
Я правильно понял?
Да, именно так. Хотя на практике лучше начать с измерения углов между знаками.
Например, между Овном и Львом 120 градусов = эти знаки находятся в трине.
Если, например, Солнце находится в 1 градусе Овна, а Луна в 1 градусе Льва - то эти планеты определенно так же находятся в трине.

В вот если Солнце находится в первом градусе Овна, а Луна в последнем градусе Рака, то трина нет, несмотря на то, что в смысле угловых расстояний между Солнцем и Луной что-то около 120 градусов (квадратуры кстати тоже нет, в виду слишком большого орба, хотя между любыми двумя соответствующими градусами Овна и Рака ровно 90 градусов).

Просто нужно один раз вызубрить таблицу аспектов между знаками и тогда это все будет определяться на автомате
__________________
В астрологии Деда Мороза нет
LordWilex вне форума   Ответить с цитированием
Ответ


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +1, время: 07:38.


Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
© 1995-2026, ARGO