Телескопы покупают здесь


A A A A Автор Тема: Линия "Терминатора"  (Прочитано 14012 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Tau

  • Гость
Re: Линия "Терминатора"
« Ответ #20 : 31 Янв 2010 [19:28:29] »
Цитата
Насколько долго в нем надо разбираться?
Не могу сказать, я на VB перешла с другого языка, поэтому мне оставалось только мозг перенастроить под другие правила программирования. А если вы вообще программированием не занимались, то только на практике можно выяснить, как быстро у вас пойдет дело. В любом случае, процесс пойдет не медленнее, чем при изучении любого другого языка :).
И вы учтите, что к Visual Basic относятся скептически, в использовании Бейсика нельзя признаваться в приличном обществе  ;D.

Оффлайн kress

  • **
  • Сообщений: 57
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от kress
Re: Линия "Терминатора"
« Ответ #21 : 01 Фев 2010 [04:53:54] »
Kedr, в смысле вычислений и работы с данными ограничений нет. По-крайней мере я и с каталогами работаю, и с Fts-файлами, и с любыми табличными данными без проблем. По вычислительным возможностям VB ничем не отличается от других языков.
Из плюсов:
1) Быстрое создание интерфейса.
2) Читабельность кода :))
3) Двумерная графика реализуется очень просто.
4) Работа в window-скими функциями тоже просто реализуется посредством API.
Из минусов:
1) некоторое расхождение в типах данных по сравнению с другими языками, что может не позволить подключить какую-нибудь Dll, написанную на другом языке.
2) VB работает медленнее, чем тот же C++, и в случае обработки большого количества данных в реалтайм-режиме VB не подойдет.
3) В VB нет указателей.
4) С трехмерной графикой проблемы. Возможности DirectX использовать можно, но для этого нужно быть маньяком.

Спасибо! Я в программировании пока ноль, но появляются задачи которые без нужной программы не решить. Вот незнаю как, с какой стороны подойти к этому делу. VB подайдет для новичка? ;D Насколько долго в нем надо разбираться?

Мог бы порекомендовать обратить внимание на Delphi(язык паскаль) или лучше C++Builder(язык С++). Они лишены недостатков о которых писала Tau и материалов, форумов в сети масса, без внимания и информации не останетесь. В Delphi муторнее работать с типами, да и сам язык строже, а  C++Builder очень гибкий, только требует внимания и аккуратности. Разобраться не сложнее чем с VB ИМХО.
А что за нужные программы, если не секрет? Я человек новый, но уже сложилось впечатление, что запрограммировано  все, что нужно и даже больше и остается только найти нужное.   

Kedr

  • Гость
Re: Линия "Терминатора"
« Ответ #22 : 03 Фев 2010 [19:22:08] »
А что за нужные программы, если не секрет? Я человек новый, но уже сложилось впечатление, что запрограммировано  все, что нужно и даже больше и остается только найти нужное.   

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

Оффлайн kress

  • **
  • Сообщений: 57
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от kress
Re: Линия "Терминатора"
« Ответ #23 : 04 Фев 2010 [17:14:00] »
А что за нужные программы, если не секрет? Я человек новый, но уже сложилось впечатление, что запрограммировано  все, что нужно и даже больше и остается только найти нужное.   

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

А математика, алгоритмы, готовые программы есть для такой задачи? А для чего это нужно? 

Оффлайн Acrux

  • ****
  • Сообщений: 363
  • Благодарностей: 39
  • Eppur si Muove!
    • DeepSkyHosting: AlexanderKrutov
    • Сообщения от Acrux
    • Astrarium — бесплатный open-source планетарий для Windows
Re: Линия "Терминатора"
« Ответ #24 : 05 Фев 2010 [16:49:36] »
Вот еще ссылка по теме: http://www.jgiesen.de/map/index.html
Пример на Java.
Astrarium — бесплатный open-source планетарий для Windows

SW SkyMax 127, SW BKP1145, Svbony SV48, Nikon Aculon A211 7x35
SW AZ5 HD, SW AZ-GTi
Svbony SV105, SV305

Оффлайн RN3QGAАвтор темы

  • **
  • Сообщений: 84
  • Благодарностей: 1
  • Не может быть так плохо, чтобы не было еще хуже !
    • Сообщения от RN3QGA
Re: Линия "Терминатора"
« Ответ #25 : 06 Фев 2010 [22:08:16] »
Подскажите уважаемая Tau, в Вашем описании вычисления ничего не сказано о приведении [S=Ss/240] звездного времени к 360 градусам, это обязательно делать для дальнейших расчетов и если да , то может подскажите как? ???
Ну хотя бы для простого паскаля если конечно да.
С уважением RN3QGA.
P.S Вроде начал сам разбираться, кое что понятно, но будут еще вопросы.
Celestron SkyMaster 15x70 Binoculars

Tau

  • Гость
Re: Линия "Терминатора"
« Ответ #26 : 06 Фев 2010 [23:01:52] »
Не обязательно. Всё, что входит в качестве аргументов в тригонометрические функции (cos, sin, tg), к конкретному диапазону приводить не нужно. Главное, чтобы вы эти аргументы в радианы перевели, потому что тригонометрические функции, похоже, во всех языках требуют аргумента в радианах.
Перевести градусы в радианы: X[в градусах]*ПИ/180 = X[в радианах], число ПИ = 3.14159265358979

Перевести угол в диапазон от 0 до 360 градусов можно по-крайней мере двумя способами:
1) Если угол больше 360 градусов, то отнимаете от угла по 360 градусов, пока не войдете в диапазон
Repeat
X:=X-360 ;
Until X<360
Если угол меньше 0 градусов, то прибавляете к углу по 360 градусов
Repeat
X:=X+360 ;
Until X>0
2) Второй способ - выделение из числа целого количества оборотов.
Вы только запомните, что угловая мера циклична с периодом в 360 градусов. 370 градусов - это те же самые 10 градусов (370-360), а -40 градусов эквивалентны 320 градусам (-40+360). Можете проверить, вычислив на Дельфях, например, синус 10 градусов и синус 370 градусов. Вдруг в Дельфях какие-то другие тригонометрические функции и синусы не совпадут?  ;)

Оффлайн RN3QGAАвтор темы

  • **
  • Сообщений: 84
  • Благодарностей: 1
  • Не может быть так плохо, чтобы не было еще хуже !
    • Сообщения от RN3QGA
Re: Линия "Терминатора"
« Ответ #27 : 06 Фев 2010 [23:53:17] »
Спасибо уважаемая  Tau   :) Все понял, дошел сейчас до вычисления координат и честно говоря сверяясь с вашим примером пока не совпадают, остальное вроде бы получилось (что касается вычислений).
И вот еще в док файле где в конце Тест: у меня L=3907.375.......? хоть как ни верти и X=0.607(без знака минус), а так все совпадает, почему не пойму, я конечно математик на уровне школы  :P (уж не смейтесь сильно), но все остальное то совпадает правда с координатами проблема но остальное то вроде так, не может быть в доке опечатка(уж извиняюсь за предположение). Если не -  будем мозг свой физкультурный напрягать.
С уважением RN3QGA.
Celestron SkyMaster 15x70 Binoculars

Tau

  • Гость
Re: Линия "Терминатора"
« Ответ #28 : 07 Фев 2010 [00:24:57] »
Правильно L= 3907.37595.. Отнимаем 360 градусов 10 раз, получается L= 307.37595, как в доке написано. В таких вот формулах вычислений орбитальных элементов часто получается безумное количество градусов, это нормальное явление. Я обычно всю цифирь вывожу на печать и просматриваю глазами, поэтому автоматом перевожу всегда углы в приемлимый диапазон.
X действительно положительный без знака минус, всё у вас правильно. А уровень моей невнимательности растет на глазах, так что предположение об отсутствии ошибок в доке неправильно.
Что у вас еще не совпадает? :)

Оффлайн kress

  • **
  • Сообщений: 57
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от kress
Re: Линия "Терминатора"
« Ответ #29 : 07 Фев 2010 [07:51:22] »
Спасибо уважаемая  Tau   :) Все понял, дошел сейчас до вычисления координат и честно говоря сверяясь с вашим примером пока не совпадают, остальное вроде бы получилось (что касается вычислений).
И вот еще в док файле где в конце Тест: у меня L=3907.375.......? хоть как ни верти и X=0.607(без знака минус), а так все совпадает, почему не пойму, я конечно математик на уровне школы  :P (уж не смейтесь сильно), но все остальное то совпадает правда с координатами проблема но остальное то вроде так, не может быть в доке опечатка(уж извиняюсь за предположение). Если не -  будем мозг свой физкультурный напрягать.
С уважением RN3QGA.


У меня тоже Х положителен, но дальше контрольные цифры совпали из чего я предположил, что это опечатка.

Оффлайн RN3QGAАвтор темы

  • **
  • Сообщений: 84
  • Благодарностей: 1
  • Не может быть так плохо, чтобы не было еще хуже !
    • Сообщения от RN3QGA
Re: Линия "Терминатора"
« Ответ #30 : 07 Фев 2010 [18:40:30] »
Начал вычислять координаты линии терминатора, вот так -
(Пример Паскаль)

var
A:Integer;// Вычисляемый диапазон долгот
ao1,ao2,ao3,F,Ao,Fo,AD:Double;//   Ao,Fo - углы в радианах,  F-вычисляемая широта для диапазона долгот A,  AD- для совместимости
begin
for A:=-180 to 180 do
  begin
   AD:=A;
   ao1:=Tan(Fo);
   ao2:=AD-Ao;
   ao2:=ao2*pi/180;
   ao3:=cos(ao2);
   F:=-(ao3/ao1);
   F:=F*180/pi;// в градусы
end;
end;
end.

Получается по одному градусу но F(широта) не совпадает вообще.

Вот мои вычисления:
MD=55223
T=0,100711841204654
W в рад=69,5250636411861
L в рад=68,1965755269568
X=0,607042397863
Y=-0,794669445239176
Z=0
e в град=23,437992547506
X1=0,607042397863
Y1=-0,729102125281719
Z1=-0,316084827390403
S в рад=67,8086342026481
Xg=0,862400828489931
Yg=0,395417744813583
Zg=-0,316084827390403
Ao в град=24,6318381692069
Fo в град=-18,4263162535256
Координаты линии терминатора:
-180град= -294,530557677443
-179град= -296,842553180778
-178град= -299,064127566836
-177град= -301,194604122538
-176град= -303,233333884086
-175град= -305,179695834646
-174град= -307,033097093512
-173град= -308,792973096708
-172град= -310,458787768953
-171град= -312,030033686963
-170град= -313,506232234008
-169град= -314,886933745712
-168град= -316,171717647019
-167град= -317,360192580306
-166град= -318,451996524596
-165град= -319,446796905831
-164град= -320,344290698178
-163град= -321,144204516333
-162град= -321,846294698799
-161град= -322,450347382105
-160град= -322,956178565951
-159град= -323,363634169259
-158град= -323,672590077106
-157град= -323,882952178528
-156град= -323,994656395192
-155град= -324,007668700912
-154град= -323,921985132012
-153град= -323,737631788539
-152град= -323,454664826305
-151град= -323,07317043979
-150град= -322,593264835879
-149град= -322,015094198468
-148град= -321,338834643934
-147град= -320,564692167488
-146град= -319,692902580427
-145град= -318,723731438307
-144град= -317,657473960043
-143град= -316,494454937995
-142град= -315,235028639022
-141град= -313,879578696575
-140град= -312,428517993838
-139град= -310,882288537956
-138град= -309,241361325402
-137град= -307,506236198499
-136град= -305,677441693171
-135град= -303,755534877938
-134град= -301,741101184237
-133град= -299,634754228082
-132град= -297,437135623163
-131град= -295,148914785395
-130град= -292,770788729012
-129град= -290,303481854247
-128град= -287,747745726676
-127град= -285,104358848283
-126град= -282,374126420316
-125град= -279,557880098021
-124град= -276,656477737311
-123град= -273,670803133451
-122град= -270,601765751848
-121град= -267,450300451018
-120град= -264,217367197822
-119град= -260,903950775046
-118град= -257,511060481431
-117град= -254,039729824228
-116град= -250,491016204382
-115град= -246,866000594439
-114град= -243,16578720927
-113град= -239,391503169718
-112град= -235,544298159263
-111град= -231,625344073819
-110град= -227,635834664766
-109град= -223,576985175315
-108град= -219,450031970342
-107град= -215,25623215977
-106град= -210,996863215648
-105град= -206,673222583018
-104град= -202,286627284701
-103град= -197,838413520119
-102град= -193,329936258274
-101град= -188,762568825017
-100град= -184,137702484711
-99град= -179,456746016446
-98град= -174,721125284908
-97град= -169,932282806046
-96град= -165,091677307672
-95град= -160,20078328511
-94град= -155,261090552059
-93град= -150,274103786779
-92град= -145,241342073747
-91град= -140,164338440935
-90град= -135,044639392831
-89град= -129,883804439362
-88град= -124,683405620847
-87град= -119,445027029146
-86град= -114,170264325121
-85град= -108,860724252591
-84град= -103,518024148895
-83град= -98,1437914522427
-82град= -92,7396632059735
-81град= -87,3072855599024
-80град= -81,8483132688852
-79град= -76,3644091887638
-78град= -70,8572437698449
-77град= -65,3284945480642
-76град= -59,7798456339928
-75град= -54,2129871998409
-74град= -48,6296149646149
-73град= -43,0314296775851
-72град= -37,4201366002206
-71град= -31,7974449867507
-70град= -26,1650675635091
-69град= -20,524720007221
-68град= -14,8781204223912
-67град= -9,22698881795316
-66град= -3,57304658333732
-65град= 2,08198403588068
-64град= 7,73638046259273
-63град= 13,3884203128719
-62град= 19,0363819206272
-61град= 24,6785448620399
-60град= 30,3131904796211
-59град= 35,9386024057318
-58град= 41,5530670854047
-57град= 47,1548742983098
-56град= 52,742317679704
-55град= 58,3136952402068
-54град= 63,8673098842419
-53град= 69,4014699269898
-52град= 74,9144896096907
-51град= 80,4046896131435
-50град= 85,8703975692426
-49град= 91,3099485703968
-48град= 96,7216856766771
-47град= 102,103960420536
-46град= 107,455133308948
-45град= 112,773574322813
-44град= 118,057663413477
-43град= 123,305790996214
-42град= 128,516358440525
-41град= 133,687778557088
-40град= 138,81847608124
-39град= 143,906888152814
-38град= 148,951464792198
-37град= 153,950669372482
-36град= 158,902979087521
-35град= 163,806885415802
-34град= 168,660894579953
-33град= 173,46352800176
-32град= 178,213322752559
-31град= 182,908831998856
-30град= 187,548625443048
-29град= 192,131289759106
-28град= 196,655429023086
-27град= 201,119665138342
-26град= 205,522638255307
-25град= 209,863007185716
-24град= 214,139449811148
-23град= 218,350663485752
-22град= 222,495365433048
-21град= 226,572293136673
-20град= 230,580204724952
-19град= 234,517879349192
-18град= 238,384117555557
-17град= 242,177741650435
-16град= 245,897596059178
-15град= 249,542547678098
-14град= 253,111486219622
-13град= 256,603324550497
-12град= 260,016999022943
-11град= 263,351469798644
-10град= 266,605721165502
-9град= 269,778761847026
-8град= 272,869625304285
-7град= 275,877370030329
-6град= 278,801079836978
-5град= 281,639864133902
-4град= 284,392858199904
-3град= 287,059223446323
-2град= 289,638147672475
-1град= 292,128845313058
0град= 294,530557677443
1град= 296,842553180778
2град= 299,064127566836
3град= 301,194604122538
4град= 303,233333884086
5град= 305,179695834646
6град= 307,033097093512
7град= 308,792973096708
8град= 310,458787768953
9град= 312,030033686963
10град= 313,506232234008
11град= 314,886933745712
12град= 316,171717647019
13град= 317,360192580306
14град= 318,451996524596
15град= 319,446796905831
16град= 320,344290698178
17град= 321,144204516333
18град= 321,846294698799
19град= 322,450347382105
20град= 322,956178565951
21град= 323,363634169259
22град= 323,672590077106
23град= 323,882952178528
24град= 323,994656395192
25град= 324,007668700912
26град= 323,921985132012
27град= 323,737631788539
28град= 323,454664826305
29град= 323,07317043979
30град= 322,593264835879
31град= 322,015094198468
32град= 321,338834643934
33град= 320,564692167488
34град= 319,692902580427
35град= 318,723731438307
36град= 317,657473960043
37град= 316,494454937995
38град= 315,235028639022
39град= 313,879578696575
40град= 312,428517993838
41град= 310,882288537956
42град= 309,241361325402
43град= 307,506236198499
44град= 305,67744169317
45град= 303,755534877938
46град= 301,741101184237
47град= 299,634754228082
48град= 297,437135623163
49град= 295,148914785395
50град= 292,770788729012
51град= 290,303481854247
52град= 287,747745726676
53град= 285,104358848283
54град= 282,374126420316
55град= 279,557880098021
56град= 276,656477737311
57град= 273,670803133451
58град= 270,601765751848
59град= 267,450300451018
60град= 264,217367197822
61град= 260,903950775046
62град= 257,511060481431
63град= 254,039729824228
64град= 250,491016204382
65град= 246,866000594439
66град= 243,16578720927
67град= 239,391503169718
68град= 235,544298159263
69град= 231,625344073819
70град= 227,635834664766
71град= 223,576985175315
72град= 219,450031970342
73град= 215,25623215977
74град= 210,996863215648
75град= 206,673222583018
76град= 202,286627284701
77град= 197,838413520119
78град= 193,329936258275
79град= 188,762568825017
80град= 184,137702484711
81град= 179,456746016446
82град= 174,721125284908
83град= 169,932282806047
84град= 165,091677307671
85град= 160,20078328511
86град= 155,261090552059
87град= 150,274103786779
88град= 145,241342073747
89град= 140,164338440935
90град= 135,044639392831
91град= 129,883804439362
92град= 124,683405620847
93град= 119,445027029146
94град= 114,170264325121
95град= 108,86072425259
96град= 103,518024148895
97град= 98,1437914522426
98град= 92,7396632059735
99град= 87,3072855599025
100град= 81,8483132688852
101град= 76,3644091887638
102град= 70,8572437698449
103град= 65,3284945480642
104град= 59,7798456339928
105град= 54,2129871998409
106град= 48,6296149646149
107град= 43,0314296775851
108град= 37,4201366002207
109град= 31,7974449867508
110град= 26,1650675635091
111град= 20,524720007221
112град= 14,8781204223912
113град= 9,22698881795313
114град= 3,57304658333729
115град= -2,08198403588072
116град= -7,73638046259269
117град= -13,3884203128718
118град= -19,0363819206271
119град= -24,6785448620398
120град= -30,3131904796211
121град= -35,9386024057318
122град= -41,5530670854047
123град= -47,1548742983098
124град= -52,7423176797041
125град= -58,3136952402067
126град= -63,8673098842419
127град= -69,4014699269897
128град= -74,9144896096907
129град= -80,4046896131436
130град= -85,8703975692426
131град= -91,3099485703968
132град= -96,7216856766771
133град= -102,103960420536
134град= -107,455133308948
135град= -112,773574322813
136град= -118,057663413477
137град= -123,305790996214
138град= -128,516358440525
139град= -133,687778557088
140град= -138,81847608124
141град= -143,906888152814
142град= -148,951464792198
143град= -153,950669372482
144град= -158,902979087521
145град= -163,806885415802
146град= -168,660894579953
147град= -173,46352800176
148град= -178,213322752559
149град= -182,908831998855
150град= -187,548625443048
151град= -192,131289759106
152град= -196,655429023086
153град= -201,119665138342
154град= -205,522638255306
155град= -209,863007185716
156град= -214,139449811148
157град= -218,350663485752
158град= -222,495365433048
159град= -226,572293136673
160град= -230,580204724952
161град= -234,517879349192
162град= -238,384117555557
163град= -242,177741650435
164град= -245,897596059178
165град= -249,542547678098
166град= -253,111486219622
167град= -256,603324550497
168град= -260,016999022943
169град= -263,351469798644
170град= -266,605721165502
171град= -269,778761847026
172град= -272,869625304285
173град= -275,877370030329
174град= -278,801079836978
175град= -281,639864133902
176град= -284,392858199904
177град= -287,059223446323
178град= -289,638147672475
179град= -292,128845313058
180град= -294,530557677443


Может кто поправит начинающего. :-[
С уважением RN3QGA.
« Последнее редактирование: 07 Фев 2010 [18:56:59] от RN3QGA »
Celestron SkyMaster 15x70 Binoculars

Tau

  • Гость
Re: Линия "Терминатора"
« Ответ #31 : 07 Фев 2010 [19:03:54] »
for A:=-180 to 180 do
begin
AD:=A;
ao1:=Tan(Fo);
ao2:=AD-Ao;
ao2:=ao2*pi/180;
ao3:=cos(ao2);
F:=atn(-ao3/ao1);
F:=F*180/pi;

Арктангенс забыла нарисовать. Три опечатки на один документ - позор на мою голову  :o

Оффлайн RN3QGAАвтор темы

  • **
  • Сообщений: 84
  • Благодарностей: 1
  • Не может быть так плохо, чтобы не было еще хуже !
    • Сообщения от RN3QGA
Re: Линия "Терминатора"
« Ответ #32 : 07 Фев 2010 [20:11:59] »
 :)Уважаемая Tau. Вы молодец (ну не в смысле Молодец конечно) ^-^. Все ОК, даже больше .
Для меня то, что я сам смог с Вашей помощью дойти до этих (для кого то простых) вычислений большая победа.
Я ведь действительно полный самоучка и к точным наукам имею такое же отношение как свисток к табуретке, так что ошибайтесь пожалуйста на здоровье только вот побудьте, пожалуйста, в теме еще. ;D и подольше.
А арктангенс с одним аргументом?
И че то я вообще запутался, подскажите как правильно оно (выражение для вычисления координат) должно выглядеть и что из выражения должно быть в радианах, а, что в градусах или целочисленным?
С уважением RN3QGA.
« Последнее редактирование: 07 Фев 2010 [20:30:34] от RN3QGA »
Celestron SkyMaster 15x70 Binoculars

Tau

  • Гость
Re: Линия "Терминатора"
« Ответ #33 : 07 Фев 2010 [20:50:20] »
Запоминайте: если вам нужно вычислить значение от 0 до 360 градусов, то всегда рулит арктангес с двумя аргументами, а если нужно вычислить значение от -90 до 90 градусов, то хватит арктангенса с одним аргументом. Широта изменяется от -90 до 90 градусов, поэтому арктангенс с одним аргументом.
Цитата
И че то я вообще запутался, подскажите как правильно оно (выражение для вычисления координат) должно выглядеть и что из выражения должно быть в радианах, а, что в градусах или целочисленным?
F = 180/PI * arctg(-cos(L-L0)/tg(F0))
F- Широта точки терминатора с долготой L
L0, F0 - долгота и широта Солнца
L-L0 в радианах, F0 - в радианах, так как они аргументы тригонометрических функций
Обратные тригонометрические функции (arcsin, arccos, arctg) всегда возвращают значение в радианах, поэтому появляется множитель 180/PI для перевода в градусы. Хотя градусы или радианы - это дело вкуса. Главное, чтобы придерживаться одной политики и самому не запутаться. Программисты вообще любят с радианами работать. 

Целочисленным ничего не должно быть, разве только графические координаты в окне рисования, потому что  дробных пикселов не бывает.
Ах да, и долготу L вы изменяете с каким-то целочисленным шагом и она у вас целая.

Оффлайн RN3QGAАвтор темы

  • **
  • Сообщений: 84
  • Благодарностей: 1
  • Не может быть так плохо, чтобы не было еще хуже !
    • Сообщения от RN3QGA
Re: Линия "Терминатора"
« Ответ #34 : 07 Фев 2010 [21:08:22] »
 :-[ Эх не успел. Уррррра ;D - Все сошлось вроде разобрался, только вот не понял про шаг с которым я изменяю долготу  L (у меня A)? как его нужно изменять? В Вашем примере тоже 1 градус разрешение (в EXE файле, я с ним сверяюсь по разным датам)? ???
« Последнее редактирование: 07 Фев 2010 [21:17:59] от RN3QGA »
Celestron SkyMaster 15x70 Binoculars

Tau

  • Гость
Re: Линия "Терминатора"
« Ответ #35 : 07 Фев 2010 [21:36:55] »
Цитата
ao2:=AD-Ao; 
Здесь Ao должно быть  в градусах, так как AD в градусах (вы его изменяет от -180 градусов до 180 градусов). Нельзя отнимать радианы от градусов, единицы измерения должны быть одинаковы, это общее правило в математике: если вы от 15 баранов отнимете  5 коров, то ничего внятного не получите.
Цитата
for A:=-180 to 180 do
вот тут вы и изменяете долготу с шагом в 1 градус
При желании можно изменять долготу с любым шагом и не обязательно целым. Например, с шагом в 0.5 градуса:
stepA=0.5
for A:=-180/stepA to 180/stepA do
begin
AD:=A*stepA;
...

Оффлайн RN3QGAАвтор темы

  • **
  • Сообщений: 84
  • Благодарностей: 1
  • Не может быть так плохо, чтобы не было еще хуже !
    • Сообщения от RN3QGA
Re: Линия "Терминатора"
« Ответ #36 : 07 Фев 2010 [21:44:53] »
Да, конечно я просто не успел с ответом,  :D, с шагом все понятно, я так понимаю влияет на точность построения?
Celestron SkyMaster 15x70 Binoculars

Tau

  • Гость
Re: Линия "Терминатора"
« Ответ #37 : 07 Фев 2010 [21:50:01] »
Ага, если вы вычислите с шагом в 10 градусов, то уже будет ломаная линия, а не плавная. А если у вас монитор 5  на 5 метров :) и карта растянута на весь монитор с прекрасным разрешением, то шага в 1 градус будет маловато  ;D

Оффлайн RN3QGAАвтор темы

  • **
  • Сообщений: 84
  • Благодарностей: 1
  • Не может быть так плохо, чтобы не было еще хуже !
    • Сообщения от RN3QGA
Re: Линия "Терминатора"
« Ответ #38 : 07 Фев 2010 [22:01:28] »
Ок! Приятно с Вами общаться Tau ;). Ну теперь буду ломать голову как это нарисовать.
Как я понял Мх и Му вычисляется простым делением размера (х,у) области рисования на 360?
А вот с Х0 и У0  про центр мне не совсем понятно, предполагаю, что необходимо размер разделить на 2 что -ли?
Только ЧУР сильно не хохотать. ;D
Celestron SkyMaster 15x70 Binoculars

Tau

  • Гость
Re: Линия "Терминатора"
« Ответ #39 : 07 Фев 2010 [22:28:32] »
Mx делением на 360, потому что по оси Х на карте долгота, а диапазон долготы - 360 градусов.
My делением на 180, потому что по оси Y на карте широта, а дипазон широты - 180 градусов.
Про центр вы думаете правильно, но можно и не определять центр, а вычислять графические координаты от верхнего левого угла области рисования (если там ноль-пункт области рисования):
X = (180+L)/Mx
Y =  (90-F)/My    если Y=0 в верхнем угле области рисования
Y =  (90+F)/My    если Y=0 в нижнем угле области рисования
L - долгота в градусах
F - широта в градусах
И смотрите, чтобы карта у вас была по долготе от -180 до 180 градусов. Карты-то разные бывают.