Inclinaison d'une forme "Lune", dessinée sur une picbox.

cs_Maritime Messages postés 69 Date d'inscription dimanche 16 mars 2003 Statut Membre Dernière intervention 14 mars 2015 - 6 juil. 2013 à 13:13
 Zermelo - 4 août 2013 à 09:08
Bonjour,

J'utilise le dessin de la lune telle quelle apparait depuis la terre, avec la partie éclairée et la partie sombre or, pour la rendre proche de la réalité je dois l'incliner d'un certain angle par rapport a son axe des pôles.
Cela est utilisé dans une carte du ciel.
Si quelqu'un est disposé a m'aider, je lui fournirais toutes les explications, et le code nécessaire.

Merci.

27 réponses

Bonjour Maritime.

Sur ce site, les aides sont apportées par tous les bénévoles, qui peuvent intervenir à tous moments, dans toutes les discussions.
Raison pour laquelle vous ne devez pas espérer opérer par message privé, avec un bénévole que vous auriez "sélectionné". Je vous engage donc à donner tout de suite
toutes les explications, et le code nécessaire.


Cordialement.

Étant illettré, je signe d'une croix : ×
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 juil. 2013 à 14:36
Bonjour,
Zermelo, que je salue, a on ne peut plus raison


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 juil. 2013 à 14:46
Il est d'ailleurs assez vraisemblable, à ce niveau d'explications, que la solution serait trouvée en utilisant le moteur de recherche de ce forum : mot clef : "rotation" - rechercher dans : codes


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Utilisateur anonyme
6 juil. 2013 à 17:19
Bonjour,

Et puis le règlement dit que le demandeur doit fournir son code.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Maritime Messages postés 69 Date d'inscription dimanche 16 mars 2003 Statut Membre Dernière intervention 14 mars 2015 2
6 juil. 2013 à 18:51
Bonjour,
Habituellement, j'expose mon problème d'une manière succincte, ensuite je donne touts les informations nécessaires:
Donc, il s'agit de faire incliner l'objet dessiné sur le plan XY, dans mon cas la Lune, d'un angle X "Limb Position Angle", X, voir croquis, est en fait l'angle que fait l'axe des pôles NS de la lune avec l'axe Zenth-Nadir.
Code:
Option Explicit
    
    Private Type Lune
        X As Double
        y As Double
        Ad As Double
        Dec As Double
        Lat As Double
        Lon As Double
        Elongation As String
        Fraction As Double
        Nom As String
    End Type

    Private Lune As Lune

    'Déclaration des APIs Windows pour l'utilisation des régions

    Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
    Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
    Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
    Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long
    Private Declare Function OffsetRgn Lib "gdi32" (ByVal hRgn As Long, ByVal X As Long, ByVal y As Long) As Long
    Private Declare Function PaintRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long) As Long

    'CombineRgn nCombineMode flag constants
    Private Const RGN_AND = 1
    Private Const RGN_OR = 2
    Private Const RGN_XOR = 3
    Private Const RGN_DIFF = 4
    Private Const RGN_COPY = 5

    Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  
    
    Const Pi As Double = 3.141592653
    Const Rad As Double = Pi / 180
    Const Deg As Double = 180 / Pi
  
Private Sub Form_Click()
   Dim X As Long, y As Long
   Dim Dec As Double, DR As Double
    AutoRedraw = True
    ScaleMode = vbPixels
        
    'Scale (0, -90)-(360, 90)
    BackColor = &HC00000
    
    'Aspect de la Lune
    Lune.Elongation = "Est"       '"Est" ou "Ouest"
    Lune.Fraction = 0.75          'Valeur allant de 0 to 1
          

    'Diametre de la lune
    Dim diam As Integer
     diam = 50

    
    'Positionne la Lune au mileu de la Pic.
    X = 180
    Dec = 0
    DR = Dec * Rad

    'Ordonnée pour affichage sur projection de Mercator
    y = Sin(DR) / (1 + Cos(DR)) * Deg
    
    'calcul X , Y
    X = (ScaleWidth / 360) * X
    y = (ScaleHeight / 180) * (90 - y)
    
    Dim ShowDarkMoon As Boolean
    Dim lRgn1 As Long, lRgn2 As Long, lRgn3 As Long

    '_____________
    'Lune entiere
    lRgn1 = CreateEllipticRgn(0, 0, diam, diam)

    '__________________________
    'tracé de la partie sombre

    'déplacement à l'endroit voulu
    OffsetRgn lRgn1, X - diam / 2, y - diam / 2

    'brosse pour le tracé
    Dim lBrshDrk As Long
    If ShowDarkMoon Then
        lBrshDrk = CreateSolidBrush(&H404040)
    Else
        lBrshDrk = CreateSolidBrush(&H400000)
    End If

    'tracé
    FillRgn hdc, lRgn1, lBrshDrk
    DeleteObject lBrshDrk

    'retour en (0,0) pour la suite
    OffsetRgn lRgn1, -X + diam / 2, -y + diam / 2

    '___________________________________
    'cache rectangulaire pour la moitié
    lRgn3 = CreateRectRgn(0, 0, diam / 2, diam)
    If Lune.Elongation = "Ouest" Then _
        OffsetRgn lRgn3, diam / 2, 0                'repositionnement du cache
    CombineRgn lRgn1, lRgn1, lRgn3, RGN_DIFF        'on soustrait le cache à la lune

    '________________
    'région centrale
    lRgn2 = CreateEllipticRgn(diam * Lune.Fraction, 0, diam * (1 - Lune.Fraction), diam)
    If Lune.Fraction < 0.5 Then
        CombineRgn lRgn1, lRgn1, lRgn2, RGN_DIFF    'région centrale sombre
    Else
        CombineRgn lRgn1, lRgn1, lRgn2, RGN_OR      'région centrale éclairée
    End If

    '______________________________
    'déplacement à l'endroit voulu
    OffsetRgn lRgn1, X - diam / 2, y - diam / 2

    '______
    'tracé
    Dim lBrsh As Long
    lBrsh = CreateSolidBrush(vbWhite)               'brosse pour le tracé
    FillRgn hdc, lRgn1, lBrsh

    '____________________________
    'Suppression des objets créé
    DeleteObject lBrsh
    DeleteObject lRgn1
    DeleteObject lRgn2
    DeleteObject lRgn3

    Refresh
End Sub



Croquis:
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 juil. 2013 à 20:14
Bonjour,
je viens de lire ton code "en diagonale".
1) Il ne dessine pas dans une picturebox du tout, mais sur le Form lui-même.
Or, je suppose que tu ne dessines pas que la lune, mais que tu ne veux agir que sur elle. Il va alors te falloir :
a) dessiner cette lune au centre d'une picturebox (qui peut être invisible)
b) assurer la rotation de la totalité de l'image de cette picturebox (tu as des exemples dans les codes déposés sur ce forum)
c) copier, après rotation, la partie qui t'intéresse (un rectangle au centre)
d) la coller là ou je pense que tu cherches à la dessiner (le Form, apparemment)
en précisant que le fond de la picturebox doit alors être de la même couleur que celui du Form
2) je ne comprends pas à quoi te sert, dans cette affaire, la fonction PaintRgn

Le rôle de ce forum n'est pas de traiter un ensemble de points. Il va donc te falloir :
1) transposer ton code pour une picturebox
2) ne revenir ici (avec le code d'essai concernant cette seule partie) que pour la partie relative à la rotation de l'image de la picturebox
3) si tu as ENSUITE une difficulté pour copier le résultat dans la picturebox et le coller ailleurs ===>>> autre discussion relative à ce seul point.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_Maritime Messages postés 69 Date d'inscription dimanche 16 mars 2003 Statut Membre Dernière intervention 14 mars 2015 2
7 juil. 2013 à 00:31
Bonjour,

J'avais oublié que j'avais mis l'exemple sur une form, c’était pour des tests, voila donc l'exemple sur une Picbox:

 Option Explicit
    
    Private Type Lune
        X As Double
        y As Double
        Ad As Double
        Dec As Double
        Lat As Double
        Lon As Double
        Elongation As String
        Fraction As Double
        Nom As String
    End Type

    Private Lune As Lune

    'Déclaration des APIs Windows pour l'utilisation des régions

    Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
    Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
    Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
    Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long
    Private Declare Function OffsetRgn Lib "gdi32" (ByVal hRgn As Long, ByVal X As Long, ByVal y As Long) As Long
    Private Declare Function PaintRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long) As Long

    'CombineRgn nCombineMode flag constants
    Private Const RGN_AND = 1
    Private Const RGN_OR = 2
    Private Const RGN_XOR = 3
    Private Const RGN_DIFF = 4
    Private Const RGN_COPY = 5

    Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  
    
    Const Pi As Double = 3.141592653
    Const Rad As Double = Pi / 180
    Const Deg As Double = 180 / Pi
  
Private Sub cmdAfficher_Click()
   Dim X As Long, y As Long
   Dim Dec As Double, DR As Double
    PicMoon.AutoRedraw = True
    PicMoon.ScaleMode = vbPixels
        
   ' PicMoon.Scale (0, -90)-(360, 90)
    PicMoon.BackColor = &HC00000
    
    'Aspect de la Lune
    Lune.Elongation = "Est"       '"Est" ou "Ouest"
    Lune.Fraction = 0.75          'Valeur allant de 0 to 1
          

    'Diametre de la lune
    Dim diam As Integer
     diam = 50

    
    'Positionne la Lune au mileu de la Pic.
    X = 180
    Dec = 0
    DR = Dec * Rad

    'Ordonnée pour affichage sur projection de Mercator
    y = Sin(DR) / (1 + Cos(DR)) * Deg
    
    'calcul X , Y
    X = (PicMoon.ScaleWidth / 360) * X
    y = (PicMoon.ScaleHeight / 180) * (90 - y)
    
    Dim ShowDarkMoon As Boolean
    Dim lRgn1 As Long, lRgn2 As Long, lRgn3 As Long

    '_____________
    'Lune entiere
    lRgn1 = CreateEllipticRgn(0, 0, diam, diam)

    '__________________________
    'tracé de la partie sombre

    'déplacement à l'endroit voulu
    OffsetRgn lRgn1, X - diam / 2, y - diam / 2

    'brosse pour le tracé
    Dim lBrshDrk As Long
    If ShowDarkMoon Then
        lBrshDrk = CreateSolidBrush(vbBlack)
    Else
        lBrshDrk = CreateSolidBrush(&H400000)
    End If

    'tracé
    FillRgn PicMoon.hdc, lRgn1, lBrshDrk
    DeleteObject lBrshDrk

    'retour en (0,0) pour la suite
    OffsetRgn lRgn1, -X + diam / 2, -y + diam / 2

    '___________________________________
    'cache rectangulaire pour la moitié
    lRgn3 = CreateRectRgn(0, 0, diam / 2, diam)
    
    If Lune.Elongation = "Ouest" Then _
        OffsetRgn lRgn3, diam / 2, 0                'repositionnement du cache
    CombineRgn lRgn1, lRgn1, lRgn3, RGN_DIFF        'on soustrait le cache à la lune

    '________________
    'région centrale
    lRgn2 = CreateEllipticRgn(diam * Lune.Fraction, 0, diam * (1 - Lune.Fraction), diam)
    
    If Lune.Fraction < 0.5 Then
        CombineRgn lRgn1, lRgn1, lRgn2, RGN_DIFF    'région centrale sombre
    Else
        CombineRgn lRgn1, lRgn1, lRgn2, RGN_OR      'région centrale éclairée
    End If

    '______________________________
    'déplacement à l'endroit voulu
    OffsetRgn lRgn1, X - diam / 2, y - diam / 2

    '______
    'tracé
    Dim lBrsh As Long
    lBrsh = CreateSolidBrush(vbWhite)               'brosse pour le tracé
    FillRgn PicMoon.hdc, lRgn1, lBrsh

    '____________________________
    'Suppression des objets créé
    DeleteObject lBrsh
    DeleteObject lRgn1
    DeleteObject lRgn2
    DeleteObject lRgn3

    PicMoon.Refresh
End Sub



Ci-joint capture écran lune éclairée par le soleil.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 juil. 2013 à 07:37
Bien
je ne vois rien dans ce code qui n'atteindrait pas le résultat (dessin dans la picturebox). Si ce n'est (comme je l'avais déjà signalé)= l'inutilité de la déclaration de la fonction PaintRgn de l'A1pi de Windows
Tu dois donc maintenant passer au points suivants (lire mon message précédent).



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_Maritime Messages postés 69 Date d'inscription dimanche 16 mars 2003 Statut Membre Dernière intervention 14 mars 2015 2
7 juil. 2013 à 10:31
L'api j'ai du l'oublier depuis l’écriture du code.
Dans le programme Ciel, il y a des options pour changer la couleur du ciel et la couleur des objets s'y trouvant, étoiles, constellations, plan fondamentaux, police, etc...
Quant a notre lune, si j'ai bien compris, je dois la mettre dans une Picbox invisible, puis lui faire subir le mouvement dans le ciel avec la rotation en plus pour garder la partie éclairée en face du soleil.
Donc, je dois trouver un exemple qui va dans ce sens.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 juil. 2013 à 10:53
puis lui faire subir le mouvement dans le ciel avec la rotation en plus

Donc, je dois trouver un exemple qui va dans ce sens

Ce n'est pas ce que j'ai dit.
J'ai dit :
1) assurer, dans la seule picturebox contenant la seule lune, la rotation de l'image de cette picturebox
2) passer le résultat sur le "ciel"
dans la présente discussion (rotation d'une image) , seul le point 1) pourra être traité et ===>>
assurer la rotation de la totalité de l'image de cette picturebox (tu as des exemples dans les codes déposés sur ce forum)

et
en utilisant le moteur de recherche de ce forum : mot clef : "rotation" - rechercher dans : codes


Le point 2) devra nécessairement (règle de ce forum) faire l'objet d'une discussion distincte, car problème distinct (qu'il s'agisse d'ailleurs de l'image d'une lune ou d'un bouchon de pêche ou de quoi que ce soit d'autre...
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_Maritime Messages postés 69 Date d'inscription dimanche 16 mars 2003 Statut Membre Dernière intervention 14 mars 2015 2
7 juil. 2013 à 11:25
Ce qui me préoccupe pour l'instant:
1) Je me rappelle avoir essayé de faire la rotation de la lune, mais c’était tout l’arrière plan de lune qui tournait avec, je dois rechercher ce code dans mes archives, depuis que j'ai changer de carte mère j'ai du perdre certains fichiers.
Entre temps, je vais chercher du code sur la rotation, je reviendrai sur le forum si nécessaire.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 juil. 2013 à 11:30
Je me rappelle avoir essayé de faire la rotation de la lune, mais c’était tout l’arrière plan de lune qui tournait avec

oui ? Et alors (puisque dessinée à ce stade seule dans une picturebox distincte) ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 juil. 2013 à 11:50
Arrête surtout de te "projeter".
Je vais de suite te rassurer
Le rectangle contenant ta lune fait au grand maximum 70 pixels par 70 pixels (une broutille) et la lune y étant placée en son centre, elle y restera après rotation.
A partir de là deux méthodes :
- l'une, complexe et que je vais éviter car apparemment hors de ta portée, pour assurer la transparence d'un seul coup
- l'autre, à la portée de n'importe quel débutant un peu aguerri, pour ne dessiner sur le "ciel" que les pixels d'une couleur autre que celle du fond de l'image (boucle extrêmement rapide du fait de la très faible taille de l'image !)
Mais je ne veux à ce stade pas en entendre parler car DEVRA faire l'objet d'UNE DISCUSSION DINSTINCTE !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_Maritime Messages postés 69 Date d'inscription dimanche 16 mars 2003 Statut Membre Dernière intervention 14 mars 2015 2
7 juil. 2013 à 12:21
ucfoutu,

Comme vous le dite, la deuxième méthode me convient.
Je dois donc relancer une nouvelle discussion sur ce sujet !
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 juil. 2013 à 14:35
Je dois donc relancer une nouvelle discussion sur ce sujet

1) Oui. Sans même parler de lune, de ciel, etc ....
Juste de la nécessité de dessiner sur un conteneur A les seuls pixels d'une image d'un conteneur B dont la couleur serait différente de celle du fond du conteneur B
2) il me semble par ailleurs que la conception de ton dessin sur la picturebox lune n'est pas parfaite. La couleur d'un objet opaque (ta lune) est forcément différente en chaque point (y compris ceux "obscurs") de celle de la profondeur du ciel. Et ce : quelques puissent être les conditions, hygrométriques, météorologiques, de luminosité, etc ...
Et c'est loin d'être anodin, hein ... ainsi : même la partie "non éclairée" d'une lune cache forcément les objets (astres compris) se trouvant en son arrière plan, hein ...
A toi de parfaire ton dessin sur cette picturebox, en choisissant, au besoin, une couleur dont les composantes RGB seraient très légèrement différentes de celle du "fond" (une différence d'une seule unité sur une seule de ces 3 composantes suffit d'ailleurs pour que la couleur, bien que perçue comme "identique", soit différente.
Et donc ? ===>>>
1) 1 globe entier de la couleur "opaque"
2) redessin de tes couleurs "lumineuses" sur ce globe-là.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
7 juil. 2013 à 15:42
Bonjour Maritime,

Au lieu de te compliquer la vie avec des "Region" pour dessiner la Lune, essaye plutôt d'utiliser la police Moon Phases.
Dans cette police les lettres A-Z (blanc sur noir) et a-z (noir sur blanc) représentent les phases de la lune (blanc sur noir). Tu me diras il n'y a que 26 lettres pour 29 jours, oui il faut tricher un peu.
Bien sûr, comme tu le souhaites, il faudra appliquer l'angle de phase, pour cela, faire comme suit :
1 : créer une Picture cachée
2 : écrire sur celle-ci la lettre correspondant à la phase du jour en cours
3 : appliquer une rotation à l'image à l'aide de la fonction PlgBlt.
4: Faire un BitBlt ou un TransparentBlt de l'image cachée sur le ciel à l'endroit désiré.

Une autre solution, moins aisée, consiste à importer une image à partir du Net récupérée sur les sites de calendrier lunaire. Là tu auras une véritable image de la Lune avec l'illumination du jour. Ne reste plus qu'à la redimensionner et appliquer la rotation.

Cheyenne
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 juil. 2013 à 16:00
Bonjour, Cheyenne,
Ta première solution :
- n'améliorera pas vraiment
- et tant qu'à l'utiliser, autant incliner directement pa police de caractères (createfontindirect)
La seconde non plus car :
- il ne trouvera pas une image par jour
- la copie de ces images sera entourée dans un rectangle et même si de couleur réellement unie (ce qui n'est pas certain) et si la partie "obscure" n'est pas par malheur la même que celle du fond (ce qui n'est pas certain non plus, surtout après "réduction"), les problèmes resteront ceux dont je parlais plus haut.
Autant partir d'images pures, calculées comme il le fait. Cette pureté sera au contraire de nature à faciliter le traitement. Elle évitera de surcroît des dépendances (police ou images, selon le cas).

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 juil. 2013 à 16:05
Sans compter que la solution ((de la police de caractères) qui affranchirait de la construction de l'image génèrerait d'autres calculs peut-être encore plus fastidieux afin de faire en sorte que le centre de la lune soit placé au centre de la picturebox "lune" (avant même tout traitement de rotation)


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
7 juil. 2013 à 18:00
Bonjour ucfoutu
,- il ne trouvera pas une image par jour
Bien sûr que si ! et il y a pléthore de sites.
Mais si il faut un rendu de l'illumination en temps réel ce n'est plus valable. Variation de plusieurs % en quelques heures selon le moment de la phase.

Ok pour createfontindirect, je n'y avais pas pensé.
J'utilise Moon Phases pour représenter les 4 phases principales sur une année et je ne tiens pas compte de l'angle.

Personnellement j'utilise une banque de 201 images, chacune d'elle représentant l'illumination de 0 à 100%, (avant et après la PL) je n'ai plus qu'à les incliner selon l'angle de phase. Mais mon soft est différent car il est entièrement dédié à la lune et l'image fait 200x200 pixels.
faire en sorte que le centre de la lune soit placé au centre de la picturebox
Ce n'est pas un problème car cette police est à chasse fixe, sinon tu as raison.
Pour ce qui est du fond de l'image,ce que tu évoques est réel, mais avec des images adéquates le problème ne se pose plus. Par image adéquate j'entends que la partie sombre ait toujours la même valeur RVB ainsi que le fond de l'image même si autre valeur RVB, mais la même pour toutes les images.

Cheyenne
0
cs_Maritime Messages postés 69 Date d'inscription dimanche 16 mars 2003 Statut Membre Dernière intervention 14 mars 2015 2
7 juil. 2013 à 18:28
Bonjour cheyenne,
J'avais pensé a la police moonphase, sauf que la partie illuminée ne varie pas en temps réel cad en fonction de l’élongation.
idem pour le zoom du champ où se trouve la lune, il suffit d'augmenter le diamètre.
Je pense continuer sur la même voie.
0
Rejoignez-nous