begin process at 2012 05 30 12:18:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

suivi d'un rayon


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

suivi d'un rayon

mercredi 21 avril 2010 à 04:19:37 | suivi d'un rayon

mb89ma

bonjour à tous,
j'ai un exercice informatique sur lequel je bloque.
Il faut réaliser le suivi d'un rayon au travers une conduite de 1 cm de large et de 19 cm de hauteur.
La conduite est de plus découper en carré de 1 cm de côté, ce qui nous donne 19 carrés en tout.
Le rayon part d'une position x de la paroi du haut avec un angle alpha qui sont déterminé aléatoirement.
Si le rayon sort par la droite il revient par la gauche et inversement. Si le rayon atteint l'une des parois (y=0 ou y= 19) alors il est réfléchi.
Il faut en plus calculer la distance qu'il aura parcouru dans chaque carré qu'il faudra stocker dans un tableau.
Il faut également limiter le nombre de carré traversé à 100.
Je vous poste mon travail en langage C.

Code C/C++ :
#include <stdio.h>
#include <math.h>
#include <limits.h>



int main(void)
{
    double x,y,Vx,Vy,DX,DY,longueur,min;
    float t1,t2,t3,t4;
    int i,j,n,cpt=0;
    
    printf("Entrez les dimensions DX et DY du billard :");               
/* dans cette partie on rentre les données: dimensions coordonnées vitesse*/
    scanf("%lf %lf",&DX,&DY);                                                /* et le nombre d'itération*/    
    printf("\nEntrez les coordonnees x0 et y0 de la boule :");
    scanf("%lf %lf",&x,&y);
    printf("\nEntrez les vitesses Vx et Vy de la boule :");
    scanf("%lf %lf",&Vx,&Vy);
    printf("\nEntrez le nombre n :");
    scanf("%d",&n);
    
    if(y==DY||y==0) Vy=-Vy; /*Si le départ du rayon est sur l'une des deux parois alors on change la vitesse*/
    
    printf("\nles coordonnes %d de la boule sont : %7.2f %7.2f",0,x,y);
    
    for(j=0;j<n;j++)
    {
    /*On calcul les temps pour atteindre chacune des parois*/
    t1=-y/Vy;        
    t2=(DY-y)/Vy;
    t3=-x/Vx;
    t4=(DX-x)/Vx;
    
/*on prend le min de ces temps*/
    double t[4]={t1,t2,t3,t4};                  
    min=3e508;              
    for(i=0 ; i<4; i++)
    {if (t[i] < min && t[i]>0) min=t[i];}
    
    x+=Vx*min;      
    y+=Vy*min;
    
    longueur=min*sqrt(pow(Vx,2)+pow(Vy,2)); 
    printf("\nla longueur du segment %d est : %7.2f",j+1,longueur);
    
    
    if(y < 0.01 ){y=0; Vy= -Vy;}
    if(y >DY - 0.01 ){y=DY; Vy= -Vy;}
    if(x < 0.01 ){Vx= -Vx;}
    if(x >DX - 0.01 ){Vx= -Vx;}  
printf("\nles coordonnes %d de la boule sont : %7.2f %7.2f",j+1,x,y);

}
    scanf("%d",&n);
    return 0;
    
}


    



Je n'arrive pas à calculer la longueur parcourue par le rayon dans chaque carré.
Merci pour vos aides.


Cette discussion est classée dans : printf, vx, rayon, dy, vy


Répondre à ce message

Sujets en rapport avec ce message

qu'est ce qui va pas dans mon prog ? [ par Laurent0228 ] Salut et merci pour vaut reponse.dans mon prog ci dessous la fontion lir()enregistre les sprites, et la fonction Put() les sort sur ecran reels mais l STRUCTURE EN C++ [ par smar ] VOICI MOT CODE EN C++ #include struct date {int jour; int mois; int annee; }; struct Etudiant { char nom[50]; char prenom[50]; int cin; date d; int ni aide pour initialisé est afficher une structure [ par Rido159 ] [b]bonjour je suis encore débutant en C j apprend les structures pour l instant , aider moi svp[/b] [b][u]Dans #include "main.h" :[/u][/b] [code=cpp] Erreur [ par IMFM ] Bonjour, mon compilateur me donne ce message "type name expected" a chaque fois que je fais la compilation. je vais vous laisser mes codes. //Declarat aide pour un mini projet [ par IMFM ] salut, dans le cadre de mes etudes j'ai un projet d'une entreprise qui se lance dans la vente des materiels Type 1 : Informatiques Type 2 : Électrique probléme de déplacement d'une case a une autre dans un tableaux de type char* [ par mlikos ] Bonjour, est ce qq1 peut m'aider a résoudre ce problème : #include #include #include struct coordonnees { int x; int y; }; typedef struc exercices à résoudre [ par jomsow ] bonjour je suis débutant en C svp aidez moi à résoudre ces deux exercices : Exercice 1: Modifier le programme suivant de telle sorte qu’il affiche mot se terminant par [ par naltap312 ] Bonjour, tout novice et après moultes rélfexions, apparement pas assez, je n'arrive pas à coder une fonction me retournant si oui ou non un mot se te programme calculette [ par jeanphilippe37 ] [del]Bonjour[/del], Voila, j'ai réalisé une calculette mais je voudrais incorporer une lecteure de fichier qui contient les opérations et les résulta


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales