IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Pascal Discussion :

Système solaire géocentrique pour PTCPas et AGGPas


Sujet :

Contribuez Pascal

  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 225
    Billets dans le blog
    9
    Par défaut Système solaire géocentrique pour PTCPas et AGGPas
    Bonjour ! Je vous propose une représentation animée géocentrique du système solaire. C'est ma version Pascal de ce programme JavaScript.

    Nom : epicycles-ptc.png
Affichages : 188
Taille : 966 octets

    Compilation (après avoir corrigé le chemin vers les unités AGGPas, en fonction de votre installation) : make

    Mode d'emploi:

    Appuyez sur une touche pour fermer le programme.

    17/04/2026

    Ajouté version plein écran.

    22/04/2026

    Ajouté version SDL2.
    Fichiers attachés Fichiers attachés
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 225
    Billets dans le blog
    9
    Par défaut
    Mon animation est moins fluide que l'original.

    Il faudrait peut-être quelque chose de plus sophistiqué que ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      while not console.KeyPressed do
      begin
        // ...
        Sleep(CDelay);
      end;
    Autre différence. Dans l'original les planètes laissent une légère traînée. On voit la trajectoire qu'elles ont suivie. Je n'ai pas compris comment cet effet est obtenu. Si vous avez une idée...
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 225
    Billets dans le blog
    9
    Par défaut
    Essayé le programme sous Windows. Violation d'accès et plantage sans ouvrir de fenêtre.

    Il y a un problème, mais pas de solution pour le moment. Les programmes basés sur l'unité PTC ne fonctionnent pas sur certaines versions de Windows.

    J'ai signalé le problème à tout le monde, mais pour le moment personne ne s'en occupe activement je crois.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 541
    Par défaut
    Salut.

    Ici tu as un risque de division par zéro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        period := period_;
        speed := 2 * PI / period * speedScale;
    Sachant que period_ vaut zéro par defaut.
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag :resolu:

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 225
    Billets dans le blog
    9
    Par défaut
    @anapurna

    Merci pour le coup d'œil.

    Ajouté (dans le premier message) une version plein écran. J'ai l'impression que c'est toujours un peu moins moins beau que l'original. Je me suis à deux doigts de me convertir à JavaScript.

    Note pour les utilisateurs de Windows 11 (?) : Il est possible que le programme ne fonctionne pas chez vous. Je mets un point d'interrogation parce que ce n'est toujours pas très clair.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  6. #6
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 225
    Billets dans le blog
    9
    Par défaut Version SDL
    Ajouté une version basée sur SDL2 (au lieu de PTCPas).

    Comme précédemment, vous devez corriger dans Makefile les chemins vers les unités (dans ce cas SDL2 et AGGPas) en fonction de votre installation, puis : make
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  7. #7
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 794
    Par défaut
    Bonjour Roland,

    Citation Envoyé par Roland Chastain Voir le message
    ...Dans l'original les planètes laissent une légère traînée. On voit la trajectoire qu'elles ont suivie. Je n'ai pas compris comment cet effet est obtenu...
    Pour obtenir une traînée sur tout ce qui bouge, la technique la plus efficace est de faire un filtrage temporel. Cela consiste, pour chaque point de l'image de faire un mélange avec son correspondant dans l'image précédente : P(x,y)vu = P(x,y)vu + a*(P(x,y)new - P(x,y)vu).

    Le coefficient a est entre 0 et 1. Si a = 0, l'image est gelée. Si a= 1, il n'y a pas de filtrage. Le filtrage a lieu entre les deux extrêmes.

    Cela nécessite une image en plus (Imgnew).

    Si la bibliothèque permet le mixage (fusion) d'images genre Blend(img1, img2, a), il n'y a pas grand-chose à faire sinon choisir a et mettre les résultats dans Imgnew avant de la fusionner avec l'image actuelle.

    Sinon, il faut l'écrire Auquel cas je proposerais de travailler avec des entiers et a = k/2^u afin d'éviter toute division. Je dois avoir un truc de ce type qui traîne (pour Windows ).

    Indépendamment de cela, la fluidité peut être augmentée en diminuant les sauts angulaires et la temporisation : plus de pas plus rapides se rapprochent de la continuité, donc de la fluidité. Attention, si on multiplie le nombre de pas par x, il ne suffit pas de diviser le temps par x. Il faudra certainement le diviser par plus pour tenir compte du temps de traitement accru des pas. Tant que les traitements élémentaires sont courts devant la temporisation, il n'y a pas de problème. Mais quand les temps deviennent comparables, l'algorithme aura une plus forte dépendance à la puissance machine.

    Salut
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  8. #8
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 794
    Par défaut
    Bonjour,

    Petite illustration (programme disponible d'environ 130 lignes).
    Nom : Speed blur.png
Affichages : 52
Taille : 2,7 Ko

    En mouvement, les contributions des différentes images ne se distinguent pas les unes des autres.

    Sur un fond noir, on peut utiliser un filtrage adapté (qui ne marchera pas sur un fond coloré) plus rapide avec une rémanence accrue et des astres jamais atténués (mais dans une certaine mesure je trouve que l'atténuation donne du modelé).

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  9. #9
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 794
    Par défaut
    Bonjour,

    Un exécutable (Windows) avec 2 astres en balade et fondu réglable : Speed.7z

    Nom : Speed_Blur.png
Affichages : 36
Taille : 20,6 Ko

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  10. #10
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 794
    Par défaut
    Bonjour,

    Le programme (sources et exe) avec deux type de fondu : Speed.7z.

    Les effets sont assez faciles et le nombre d'objets ne change rien au temps pris pour générer le flou de mouvement qui ne dépend que de la taille de l'image. En revanche, la gestion même de multiples objets peut nécessiter du temps incompatible avec l'animation.

    Le code utilise de l'assembleur mais pas dans des fonctions assembleur. Il devrait donc être portable sous linux pour peu que le CPU soit de la famille x64.

    Nom : Speed_Blur.png
Affichages : 17
Taille : 36,4 Ko

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

Discussions similaires

  1. [Débutant] code modèle EUFRAT pour le calcul du flux solaire sur matlab
    Par amna1 dans le forum MATLAB
    Réponses: 1
    Dernier message: 03/03/2015, 15h56
  2. [Python 3.X] Programme pour le dimensionnement solaire
    Par rodicus dans le forum Général Python
    Réponses: 6
    Dernier message: 15/01/2015, 13h36
  3. Réponses: 36
    Dernier message: 18/07/2011, 18h24
  4. Réponses: 11
    Dernier message: 28/07/2009, 17h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo