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

>>>>>>>>>>>>Sinus et cosinus

editeur_de_jeux
editeur_de_jeux
Niveau 5
31 juillet 2003 à 20:21:16

Je débute avec DirectX 9.0 et dans mon livre ils parlent souvent de sinus et cosinus dans les matrices, est-ce que vous pouvez me dire comment les calculer svp?

VictorVVV
VictorVVV
Niveau 6
31 juillet 2003 à 20:25:48

en C/C++, pour calculer le cosinus dun angle en radians, il faut utiliser la fonction cos(angle), et pour le sinus il faut utiliser la fonction
sin(angle)

pour convertir en radians un angle en degres il faut faire ( angle/180)*3.141592...

Altonfrere
Altonfrere
Niveau 10
31 juillet 2003 à 20:27:18

http://www.google.fr/search?hl=fr&ie=ISO-8859-1&q=trigonom%E9trie&meta=

Lightness1024
Lightness1024
Niveau 10
31 juillet 2003 à 20:35:46

D3DX_TORADIAN
D3DX_TODEGREE

et pour les sin et cos
:d) math.h

quand meme mieu kun calcule perso a base de développements limités.

pour faire des FAST TRIGO c bien de faire une table de sinus entre 0 et 90° d´une précision de 1° par exemple.
( ou variable, le mieux c de faire une bonne classe)
et si on demande le sin de 55.5° faire une proportionnalité entre le sin de 50 et le sin de 60.
ca c tres rapide , bien plus kun sin en double de math.h

si on demande le sin de 110 suffit de faire sin de 180-110 ca renverra la meme chose.
et pour le cos il suffit d´ajouter 90° a l´argument.

Altonfrere
Altonfrere
Niveau 10
31 juillet 2003 à 21:03:29

je crois pas qu´il comprendra tout ca.... s´il demande ce qu´est un sinus et un cosinus ta réponse me semble un peu trop complexe :)

à noter que pour une table de cosinus suffit de prolonger la table sinus de 90° et calculer le cosinus en fonction du sinus :) cos a = sin(a+pi/2)

EDell
EDell
Niveau 8
31 juillet 2003 à 21:57:23

Pourtant c´est niveau seconde?

editeur_de_jeux
editeur_de_jeux
Niveau 5
31 juillet 2003 à 22:11:33

Dans mon école on voit ça en 4ème rénové ( chui de Belgique) et je vais y rentrer mais j´ai pas envie d´attendre la rentrée.

DarkPaladin
DarkPaladin
Niveau 5
31 juillet 2003 à 23:33:09

Juste une Correction : cos a = sin(a+pi/4) ! !!

Altonfrere
Altonfrere
Niveau 10
31 juillet 2003 à 23:48:54

nan !

Altonfrere
Altonfrere
Niveau 10
01 août 2003 à 00:06:08

regarde bien . .. si a = 0 . .. cos(0) ! = sin(pi/4) ! !!!!!

Lightness1024
Lightness1024
Niveau 10
01 août 2003 à 11:41:28

de toute facon j´avais deja dit " ajouter 90° a l´argument" ca revient a ce qu´a dit aitonfrere cos(x) = sin(x + pi/2)

bref en tout cas si c´etait trop compliqué pour calculer un sinus et un cosinus il suffit d´appeller les fonctions sin et cos de la librairie standard math.h livrée avec tout compilateur au moins un peu ANSI.

pour les matrices, ca ne se calcule pas, par contre ca se stocke. dans un tableau ( array) c´est ce qui se raproche le plus d´une matrice programmatiquement parlant.
exemple:

signed int MaSuperMatrice[3][3];

et voila ta une matrice carrée d´ordre 3 avec n´importe quoi dedans.
tu peux l´initialiser comme ca:

for ( int col = 0; col < 3; col++)
for ( int li = 0; li < 3; li++)
MaSuperMatrice[li][col] = 0;

ce genre de tableau est utile pour déterminer si une famille de vecteur est liée ou libre ce qui permet de savoir si c´est une base de l´espace vectoriel ou non.
dans un domaine géométrique ca peut aider a faire des rotations grace a la matrice de rotation, ca peut faire d´autres transformations, homothétie, similitude, translation.

JeanYvesYves
JeanYvesYves
Niveau 10
01 août 2003 à 15:20:26

Attention :

en 4e tu apprends a retrouver un angle dans un triangle rectangle avec cos et sin.

En 2e ou 1e tu apprends le cercle trigo, les application a la projection, l´utilité du produit scalaire
en Terminale tu apprends le produit vectoriel

Une connaissance du cercle trigo me semble importante pour faire de la 3D

Lightness1024
Lightness1024
Niveau 10
01 août 2003 à 20:30:37

ouais, faudrait lui passer un site.

DarkPaladin
DarkPaladin
Niveau 5
04 août 2003 à 15:02:33

Desoler, je me suis mal exprimer.

je suis habitué d´utiliser un tableau.

ex:

  1. define SL 64

float Sinus[64];

( cosinus)v = Sinus[(v+(SL>>2))& 63];

Altonfrere
Altonfrere
Niveau 10
04 août 2003 à 15:19:18

vi mais là tu calcules bien ton cosinus en fonction du sinus + PI/2

SL>>2 ca revient à dire pour toi à 2*PI/4 ( =PI/2)

DarkPaladin
DarkPaladin
Niveau 5
04 août 2003 à 17:40:59

c´est vrai, pour le premier msg que j´ai posté,
je m´étais mal exprimé.

Meme pour le deuxieme, je suis allé trop vite,
j´aurais du marquer " float Sinus[SL]" et non " float Sinus[64]". Dans les deux cas, ca fonctionne, meme c´est plus portable dans le
premier. Et meme pour le masquage binaire, j´aurais pu mettre " & ( SL-1)" a la place de 63.
Sinon un Modulo(lent) aurait suffit.

. ..

Lightness1024
Lightness1024
Niveau 10
04 août 2003 à 20:49:23

je préferes ca ! :)

Gonath
Gonath
Niveau 52
04 août 2003 à 22:24:55

Bon en tant que belge, j´explique à mon camarade qui va rentrer en 4eme ce qu´est le sin et le cos...

Voilà voilà, sin et cos ( prononcé sinus et cosinus) sont en quelque sorte une représentation numérique d´un angle. Il faut pour cela s´imaginer un cercle dont les axes X et Y sont centré en O ( étant le centre du cercle )

Ces axes offrent 4 quadrant dispobible de 90° ( 4*90 = 360° -> la circonférence du cercle)

En général on travail dans le premier quadrant, celui où les X et les Y sont positifs.

Autre info importante, le cercle tracé a pour rayon d´une unité. ( centimètre, mètre etc... ce que tu veux, ca vaut 1)

Alors ce qu´on veut dire par représentation numérique d´un angle c´est :

Trace une droite partant du centre du cercle et fait-la partir n´importe où. ( dans le premier quadrant bien sur, pour faciliter l´expliquation). A l´intersection de la droite et du cercle, marque un point. Ce point fait le descendre sur l´axe des X ( ou sur l´axe des Y), on appelle ca une projection orthogonale. ( exemple, si ton point se trouve en ( 6;6), il vaudra ( 6;0) après l´avoir descendu sur l´axe des X) Bien sur ceci n´est qu´un exemple puisque jamais tu n´auras un point plus grand que ( 1;0) ou ( 0;1) vu que le cercle est de rayon 1.

Alors maintenant tu regardes où est la projection du point d´intersection entre la droite et le cercle après l´avoir descendu sur l´axe des X. Et bien sa valeur ( x;0) correspondra au cos(alpha). Mais que vaut alpha, et bien alpha correspont à l´angle formé par l´axe des X et la droite tracé ! Tout aussi simple. Dessine le toi meme et tu verras.

Exemple simple :

Tu traces une droite partant du centre du cercle et tu la monte pour aller en ( 0;1) ( elle est donc confondu avec l´axes des Y) et l´angle formé entre la droite tracé et l´axe des X vaut 90° ( vu que on est dans un systeme orthogonal et donc les axes sont perpendiculaires) et en regardant la projection sur l´axe des X du point d´intersection, tu verras que le point se trouvera en ( x;0)à x valant ici 0. Donc cos(90°) vaut 0.

En tracant la droite du centre vers ( 1;0) donc confondu avec l´axe des x, l´intersection se fait en ( x;0) x valant 1. L´angle formé par la droite et l´axe valant 0 puisqu´ils sont confondus. On a cos(0)=1....

Et voilà voilà... j´espère que j´ai été assez compréhensible.

PS : pour les sinus, suffit de faire la projection sur l´axe des Y...

Gonath
Gonath
Niveau 52
04 août 2003 à 22:29:37

AU fait, je confirme ce que dit JYY, il faut connaitre absolument la trigonométrie pour faire de la 3d et pas seulement pour ca ! Ca permet aussi de travailler sur des system de courbes par interpolations etc... ou bien aussi pour la résolutions d´intégrales, pour le calcul de volume ( en faisant un changement de variable) par l´intermédiaire de coordonée cylindrique ou sphérique etc.... bon je vais pas citer toutes les applications, mais connaitre et maitriser les cos et les sin ainsi que toutes les formules ( dérivé, intégrations, composition tel que simpson) permet d´etre très utile plus tard si on veut suivre une branche ingénieur ou license physique ou license math !

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