Bonjour,
Je voudrais faire un programme avec un bateau qui se promène en mer en longeant les côtes et je voudrais afficher ce que vois le marin. Ma "médélisation 3D" du terrain est quasi terminée (j'utilise le code RGB pour la représentation R est la hauteur de 0 à 255 m, G le type de terrain et B ce qu'il y a dessus (église, phare ...). Décor assé simpliste mais suffisant. Il ne me reste plus qu'à créer une carte marine.
Ce que je voudrais faire pour dessiner ma carte, c'est, sur une page blanche tracer les les lignes de hauteur (comme sur les cartes IGN) et que l'ordinateur remplice entre les lignes en faisant un dégradé pour éviter les cassures (failses).
Mon idée, qui n'est peut être pas la meilleur mais la seul que j'ai trouvé et en lus elle ne va pas être rapide :
- Ma page est blanche,
- Je trace mes lignes de hauteur en faisant varier la nuance du rouge
- Pour chaque point de couleur rouge (R>0)
je regarde sur les cercle de rayon x s'il y a un point de couleur rouge supérieur
Si tel n'est pas le cas j'augmente x de 1 et je recommence jusqu'à ...Quand j'ai le point de couleur rouge supérieur le plus prêt, je calcul le nombre de pixels les séparant et je trace la ligne les séparant en créant un dégradé
Je pense que cette méthode est jouable mais présente plusieurs problèmes
- Lenteur
- risque d'avoir des points blanc du aux approximation des calculs
- et d'autre pas encore identifiés
Merci de me donner votre avis avant de me lancer dans un truc comme ça
Merci
PS : je développe en Delphi 7
Partager