CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

problème projet L1

TechnoForce3
TechnoForce3
Niveau 39
04 décembre 2013 à 17:05:52

Bonjour, j'ai un problème dans le cadre de mon projet de L1 en sciences :
On code sur algoscript (une version modifié par le responsable de l'UE de javascript) et pour mon projet je dois faire une horloge mais j'ai un problème au niveau des aiguilles, l'aiguille reste toujours sur un même axe, quelque soi les valeurs qu'on donne et je dois rendre ça vendredi. Si vous pouviez m'aider ou m'indiquer un site où on pourra m'aider.

Mon code actuel :
function cadran(){
Cercle(550,350,400,'blue'); // (x du centre, y du centre, diametre, couleur)
return 0;
}
cadran() ;
function tracer(a) {
Ligne(550+Math.cos(a)*200,350-Math.sin(a)*200,550+

Math.cos(a)*175,350-Math.sin(a)*175,'red');
} // cette fonction sert à tracer les traits des minutes sur le cadran
var a=0;
var b=0;
while (a<=60*Math.PI/30) {
a=a+Math.PI/30;
tracer(a);
}
function tracer_heure(b) {
Ligne(550+Math.cos(b)*200,350-Math.sin(b)*200,550+

Math.cos(b)*150,350-Math.sin(b)*150,'red');

}
while (b<=12*Math.PI/6) {
b=b+Math.PI/6;
tracer_heure(b);
}

var l; // longueur de l'aiguille
var c; // couleur
var n; // la minute
l= 100;
c= 'black';
n= 5;
function Aiguille(l,c,n) {
Ligne(550,350,(550-l)+(Math.cos(n*Math.PI/30)),(35

0-l)+(Math.sin(n*Math.PI/30)),c);

}
Aiguille(l,c,n);

Si des choses ne vous semblent pas clair, dites-le moi

CavalierAnal
CavalierAnal
Niveau 8
04 décembre 2013 à 19:45:09

Peut être c'est simplement que tout se passe très vite et que tu n'as pas le temps de voir les choses s'afficher à l'écran ? Il existe probablement une fonction du style "delay" pour attendre un certain nombre de secondes

TechnoForce3
TechnoForce3
Niveau 39
04 décembre 2013 à 20:11:50

Non l'aiguille se forme mais reste sur un même axe, quelque soit la valeur de n choisit, on pense que c'est un problème au niveau mathematique mais on arrive vraiment pas a voir l'erreur dans notre fonction, on y a passe plus d'1h en essayant plein de truc different sans succes.

CavalierAnal
CavalierAnal
Niveau 8
04 décembre 2013 à 20:28:44

ben oui ses coordonnées sont apparemment des trucs de la forme "550 + cos(f(n)), le cosinus étant entre 0 et 1, c'est normal qu'en faisant varier n il ne se passe pas grand chose.

TechnoForce3
TechnoForce3
Niveau 39
04 décembre 2013 à 20:52:56

Du coup une idée de ce que je devrais faire mathématiquement pour faire indiquer l'heure à la minute voulue? On sèche à mort là-dessus et ça nous ferait chier de pas avoir la moyenne au projet parce qu'on a bloqué sur la partie mathématique.

CavalierAnal
CavalierAnal
Niveau 8
04 décembre 2013 à 20:59:26

Il faudrait juste multiplier par 400 ton cos et ton sin, si j'ai bien compris les arguments de tes fonctions ?

TechnoForce3
TechnoForce3
Niveau 39
04 décembre 2013 à 21:04:42

Ligne(550,350,(550-l)+(Math.cos(n*Math.PI/30)),(35
0-l)+(Math.sin(n*Math.PI/30)),c);

Pour l'aiguille (c'est la ligne que j'ai CC dans ce message) :
550-l et 350-l c'est pour faire la longueur de l'aiguille parant du centre, le problème est au niveau du cos(n*3.14/30) et sin(n*3.14/30). On avait pris 30 par rapport au a=a+Math.PI/30.
On est bloqué au niveau de faire indiquer un point du cercle trigo en fait, je suis sûr que c'est pas compliqué en vrai mais on arrive pas à voir la solution.

CavalierAnal
CavalierAnal
Niveau 8
04 décembre 2013 à 22:07:15

Cercle de centre (x,y), de rayon R.

Un point du cercle est de la forme (x + R*cos(angle), y + R*sin(angle))

Il manque le R dans ton cas

TechnoForce3
TechnoForce3
Niveau 39
04 décembre 2013 à 22:23:10

Ok, merci, je pense voir comment faire, merci beaucoup :ange:

papy386
papy386
Niveau 10
05 décembre 2013 à 00:27:39

Bonjour

il faut surtout que tu calcule les coordonnées de l'aiguille dans une variable en virgule flottante, puis au moment d'afficher là tu passe en entier.

Car dans ton exemple justement tu fait le calcul direct en entier, donc tu perd des informations.

Sinon il faut aussi (pour une bonne horloge) que tu face un délais.

TechnoForce3
TechnoForce3
Niveau 39
05 décembre 2013 à 07:05:57

Je sais pas comment ça fonctionne les virgules flottantes

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment