kkhuet
Messages postés92Date d'inscriptionlundi 16 mai 2005StatutMembreDernière intervention 3 juin 2009
-
29 juin 2007 à 18:04
cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 avril 2017
-
1 juil. 2007 à 20:21
bonjour,
je bloque complètement sur un truc qui me semble devrait être tout simple.
J'ai une fonction :
Public Sub ComputeFootprint(ByVal RS As Double, ByVal satLat As Double, ByVal satLong As Double)
Dim srad, cla, sla, clo, slo, sra, cra, A As Double
Dim i As Integer
Dim N As Integer
Dim x, y, z As Double
srad = ACS(RE / RS) 'rayon du cercle de visibilité du satellite
cla = Cos(satLat) 'cosinus de la latitude
sla = Sin(satLat) 'sinus de la latitude
clo = Cos(satLong) 'cosinus de la longitude
slo = Sin(satLong) 'sinus de la longitude
sra = Sin(srad) 'sinus du rayon
cra = Cos(srad) 'cosinus du rayon
N = 10
For i = 0 To N 'N points to the circle
A = 2 * Pi * i / N 'Angle around the circle
x = cra 'Circle of points centred on Lat=0, Lon=0 y sra * Sin(A) 'assuming Earth's radius 1
z = sra * Cos(A) '[ However, use a table for SIN(.) COS(.) ]
x = x * cla - z * sla 'Rotate point "up" by latitude satLat
y = y
z = x * sla + z * cla
x = x * clo - y * slo 'Rotate point "around" through longitude satLong
y = x * slo + y * clo
z = z
LON(i) = FNatn(y, x) 'Convert point to Lat/Lon (or as required by map
LAT(i) = ASN(z) 'projection and display system).
Next i
End Sub
j'ai créé 2 variables tableaux global :
Dim LON(10) As Double
Dim LAT(10) As Double
Le tout dans un module.
Dans ma form j'essaie d'appeler la fonction en faisant :
Private Sub Combo1_click()
Dim julian As String
Dim threshdeg As Double
Dim az As Double
Dim el As Double
Dim longit As Double
Dim lat As Double
Dim range As Double
Dim rr As Double
Dim alt As Double
Dim phase As Double
Dim isVisible As Boolean
Dim southbound As Boolean
Dim RS As Double
Dim i As Integer
Dim fVisibilite As New MapXLib.Feature
Dim pt As Point
Dim StylePoint As MapXLib.Style
julian = sat.DateTimeToJT(dt) 'convertit la date actuelle en jour Julien
threshdeg = 0.5 'radians
isVisible = sat.isVisible(Combo1.Text, julian, threshdeg, southbound, az, el, longit, lat, range, rr, alt, phase) 'calcule la position actuelle du satellite
longit = Arrondir(convertLongitude(RadToDeg(longit)))
lat = Arrondir(RadToDeg(lat))
RS = 824.15
computefootprint(RS,lat,longit,LONGITUDES,LATITUDES)
For i = 0 To 10
fVisibilite.Attach Map1
fVisibilite.Type = miFeatureTypeSymbol
fVisibilite.Point.Set LONGITUDES(i), LATITUDES(i)
Next i
Map1.Layers("satellites").Refresh
End Sub
et quand je fais "exécution avec compilation complète", j'ai une erreur au niveau de la ligne rouge qui me dit "erreur de syntaxe"
Pourtant ça me semble correct
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 29 juin 2007 à 23:14
Et quand tu déclares des variables comme ceci
Dim srad, cla, sla, clo, slo, sra, cra, A As Double
seul A est considéré Double, les autres sont des Variant
Tu dois mettre As Double pour toutes les variables
Et si tes tableaux sont déclarés Public, il n'est donc pas nécessaire de les passer en paramètre...
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 30 juin 2007 à 12:57
Salut Cheyenne,
Qu' est-ce-qui t' as mis dans l' idée que je "traque" les satelittes ?!
Désolé mais ça c' est pas mon truc et je n' ai nullement l' intention de le faire :-)
Moi les satelittes je me contente de les voir tourner ...
T' as du sûrement confondre.
C' est à kkhuet qu' il faudra poser la question...
Amicalement.
cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 avril 20172 30 juin 2007 à 18:41
Bonjour Chaibat05,
Je te demande de bien vouloir m'excuser, je me suis effectivement trompé d'interlocuteur. J'ai regardé trop vite les réponses d'où la confusion...
Donc je repose la question, mais ce coup-ci à kkhuet :
Tu ne ferais pas un soft de tracking de satellites ? quel modèle utilises-tu pour les calculs, le SGP4 ? à partir des datas en '2 lignes'.
kkhuet
Messages postés92Date d'inscriptionlundi 16 mai 2005StatutMembreDernière intervention 3 juin 20091 30 juin 2007 à 19:27
bonjour,
effectivement c'est un soft pour les satellites et j'utilise bien le
SGP4 et les fichiers qui contiennent les éphémérides ont 2 lignes, et
c'est dur dur !!
cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 avril 20172 30 juin 2007 à 20:38
ReBonjour kkuet,
Oui, effectivement, c'est assez ardu. Il faut s'y tenir !!!
Si tu envisages également dans ton soft le tracé de la ligne grise, il faut faire attention aux changements lors des équinoxes car la 'grayline' s'inverse.
Puis si tu positionnes le soleil, bonjour les formules de rotation pour le faire figurer sur la planisphère.
Pour comparer les résultats de tes calculs, tu peux utiliser Orbitron qui est très fiable. Ce soft, gratuit, est entièrement paramètrable au niveau de l'interface.
Si tu ne le possède pas déjà, je te le recommande vivement.
Je suppose que c'est pour le plaisir que tu te lances dans ce soft car il y en a une pléiade de disponibles. (voir du côté radio-amateur, entre autres)
kkhuet
Messages postés92Date d'inscriptionlundi 16 mai 2005StatutMembreDernière intervention 3 juin 20091 1 juil. 2007 à 18:51
Salut,
ouh la la ça a l'air encore plus compliqué que ce que je pensais..en parlant de grayline, je suppose que tu parles de la ligne séparant jour et nuit ? Heureusement, je n'ai pas besoin d'afficher le soleil et la lune, juste la limite entre le jour et la nuit suffit, je pense...
Je connais Orbitron, ya aussi WXtrack qui est pas mal !
Et non je fais pas ça pour le plaisir, j'y suis obligée
Bon début de semaine à tous, et bonnes vacances aux veinards !!
cs_cheyenne
Messages postés693Date d'inscriptionsamedi 18 mai 2002StatutMembreDernière intervention17 avril 20172 1 juil. 2007 à 20:21
Bonsoir kkhuet,
Oui, c'est bien cela dont il s'agit, de la ligne ligne séparant le jour et la nuit.
L'avantage d'Orbitron c'est que l'on peut en plus du pilotage du rotor (commeWXtrack) disposer d'un driver pour le récepteur, très utile pour contrer l'effet Doppler.
A noter que WXTrack a été écrit en VB !
Bon courage pour le transcodage du SGP4 en Pascal vers le VB.