Précédent   Forum des professionnels en informatique > Autres langages > Autres langages > Ada
Ada Forum d'entraide sur la programmation en langage Ada
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/11/2011, 13h18   #1
Membre confirmé
 
Inscription : juin 2006
Messages : 649
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : juin 2006
Messages : 649
Points : 276
Points : 276
Par défaut Question de maths.

Bonjour,
Je ne sais pas si Ada pourrait m'aider à résoudre mon problème.
Je n'ai pas su l'exprimer autrement.
J'utilise une image d'un carte de dimension NxM que je découpe en zone en divisant N par (360*60*60) et M par (180*60*60). Mais si je multiplie les unités respective par (360*60*60) ou (180*60*60) je trouve un résultat débordant de N et M.
Alors que je voudrait retomber pile poil.
Auriez vous une solution s'il vous plaît ?
Merci pour vos réponses.
jovalise est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 09h54   #2
Membre confirmé
 
Avatar de Blackknight
 
Homme Frédéric Praca
Ingénieur développement logiciels
Inscription : février 2009
Messages : 140
Détails du profil
Informations personnelles :
Nom : Homme Frédéric Praca
Âge : 38
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2009
Messages : 140
Points : 226
Points : 226
Envoyer un message via AIM à Blackknight Envoyer un message via MSN à Blackknight
Quel que soit le langage, tu seras de toutes façons embêté.
Si N et M ne sont pas tous les deux divisibles par 180*60*60 et 360*60*60 respectivement, la représentation binaire de ses quotients introduira une erreur qui en effectuant la multiplication inverse fera dépasser tes limites.
Le seul moyen que je vois comme ça, c'est de garder faire les divisions entières et de garder les restes pour faire une tuile plus grande que les autres.
Enfin, si j'ai bien compris ton problème...
Blackknight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 12h47   #3
Membre confirmé
 
Inscription : juin 2006
Messages : 649
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : juin 2006
Messages : 649
Points : 276
Points : 276
Bonjour backknight.

Je pense que tu as saisi mon problème entout cas tu propose une solution qui semble y correspondre.
Mais je ne peux l'appliquer.
Tant pis.

Merci pour ta réponse.
jovalise est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 13h35   #4
Membre confirmé
 
Avatar de Blackknight
 
Homme Frédéric Praca
Ingénieur développement logiciels
Inscription : février 2009
Messages : 140
Détails du profil
Informations personnelles :
Nom : Homme Frédéric Praca
Âge : 38
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2009
Messages : 140
Points : 226
Points : 226
Envoyer un message via AIM à Blackknight Envoyer un message via MSN à Blackknight
Pourrais-tu exposer un peu plus ton problème ou bien c'est secret
D'ailleurs, je ne comprends pas trop dans quel cadre tu as besoin de refaire l'opération inverse.
Blackknight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 16h07   #5
Membre confirmé
 
Inscription : juin 2006
Messages : 649
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : juin 2006
Messages : 649
Points : 276
Points : 276
J'ai une carte 1024x768.
Je veux positionner des objet sur la carte selon des coordonnées "GPS" degrés minute seconde.
Je divise donc ma carte par 360*60*60 et 180*60*60 dans un premier temps, et je multiplie la faction trouvé par l'unité donnée en coordonnée "GPS"
jovalise est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 17h50   #6
Membre confirmé
 
Avatar de Blackknight
 
Homme Frédéric Praca
Ingénieur développement logiciels
Inscription : février 2009
Messages : 140
Détails du profil
Informations personnelles :
Nom : Homme Frédéric Praca
Âge : 38
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2009
Messages : 140
Points : 226
Points : 226
Envoyer un message via AIM à Blackknight Envoyer un message via MSN à Blackknight
C'est une carte Raster (jpeg, png ou autre) sans coordonnée qui représente le monde entier et donc tu cherches à faire de la projection de coordonnées GPS dessus.
Dans ce cas, il y a d'autres paramètres qui rentrent en ligne de compte comme la projection utilisée sur la carte d'origine (et là, ça devient tout de suite complexe) et la résolution utilisée (ce qui revient à faire un ratio km/pixel pour les grandes cartes).
En tout cas, bon courage parce que l'alignement n'est pas ce qu'il y a de plus facile
Blackknight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 18h29   #7
Membre confirmé
 
Inscription : juin 2006
Messages : 649
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : juin 2006
Messages : 649
Points : 276
Points : 276
Mais je fais simple là, je ne cherche pas à positionner Paris sur Paris.
C'est pour un jeu, ça ira bien.
Merci blackknight en tout cas.
jovalise est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 09h40   #8
Futur Membre du Club
 
Inscription : mars 2011
Messages : 22
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 22
Points : 17
Points : 17
Par défaut Conversion Flottant -> Entier ?

Bonjour,

Pourquoi ne pas simplement calculer en type long_float les coordonnées du point que l'on veut in fine positionner dans le tableau M x N puis remplacer ces coordonnées par les entiers qui en sont les plus proches et serviront d'index au tableau.

Mais peut-être n'ai je pas bien saisi toutes les facettes du problème...
Emile8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 10h14   #9
Membre confirmé
 
Inscription : juin 2006
Messages : 649
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : juin 2006
Messages : 649
Points : 276
Points : 276
Citation:
Envoyé par Emile8 Voir le message
Bonjour,

Pourquoi ne pas simplement calculer en type long_float les coordonnées du point que l'on veut in fine positionner dans le tableau M x N puis remplacer ces coordonnées par les entiers qui en sont les plus proches et serviront d'index au tableau.

Mais peut-être n'ai je pas bien saisi toutes les facettes du problème...
Bonjour Emilie.
Je ne sais pas, j'ai pas saisie ta démarche en fait.
Ca me semble tordu comme idée en tout cas.
jovalise est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 12h12   #10
Futur Membre du Club
 
Inscription : mars 2011
Messages : 22
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 22
Points : 17
Points : 17
Par défaut Calcul exact sur les nombres ?

En essayant de comprendre la question posée, j'ai posé l'hypothèse que les entiers M et N pouvaient être les dimensions d'un tableau représentant l'image de M x N pixels. Mais ce n'est donc pas la bonne interprétation !

Autre idée : ne pourrait-on pas utiliser à la place des flottants classiques d'Ada un autre type de nombres supportant le calcul exact avec les opérations restreintes +, -, *, / voire aussi la racine carrée ?
Emile8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 15h37   #11
Membre confirmé
 
Inscription : juin 2006
Messages : 649
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : juin 2006
Messages : 649
Points : 276
Points : 276
Citation:
Envoyé par Emile8 Voir le message
Autre idée : ne pourrait-on pas utiliser à la place des flottants classiques d'Ada un autre type de nombres supportant le calcul exact avec les opérations restreintes +, -, *, / voire aussi la racine carrée ?
Merci Emilie pour l'idée, je testerait ça prochainement.
jovalise est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h46.


 
 
 
 
Partenaires

Hébergement Web