portaldacalheta.pt
  • Principal
  • Mode De Vie
  • Rise Of Remote
  • Processus Financiers
  • Gestion De Projet
La Technologie

Tutoriel de physique du jeu vidéo - Partie I: Une introduction à la dynamique du corps rigide



Il s'agit de la première partie de notre série en trois parties sur la physique des jeux vidéo. Pour le reste de cette série, voir:

Partie II: Détection de collision pour les objets solides
Partie III: Simulation de corps rigides contraints




La simulation physique est un domaine de l'informatique qui vise à reproduire des phénomènes physiques à l'aide d'un ordinateur. En général, ces simulations appliquent des méthodes numériques à des théories existantes pour obtenir des résultats aussi proches que possible de ce que l'on observe dans le monde réel. Cela nous permet, comme développeurs de jeux avancés , pour prédire et analyser soigneusement le comportement de quelque chose avant de le construire, ce qui est presque toujours plus simple et moins coûteux à faire.



La physique des jeux vidéo consiste à simuler la physique du monde réel.



La gamme d'applications des simulations physiques est énorme. Les premiers ordinateurs étaient déjà utilisés pour effectuer des simulations physiques - par exemple, pour prédire le mouvement balistique des projectiles dans l'armée. C'est également un outil essentiel en génie civil et automobile, éclairant le comportement de certaines structures lors d'événements tels qu'un tremblement de terre ou un accident de voiture. Et cela ne s’arrête pas là. Nous pouvons simuler des choses comme l'astrophysique, la relativité et beaucoup d'autres choses insensées que nous pouvons observer parmi les merveilles de la nature.

La simulation de la physique dans les jeux vidéo est très courante, car la plupart des jeux sont inspiré par des choses que nous avons dans le monde réel . De nombreux jeux reposent entièrement sur la simulation physique pour être amusants. Cela signifie que ces jeux nécessitent une simulation stable qui ne s'arrêtera pas ou ne ralentira pas, ce qui n'est généralement pas trivial à réaliser.



Dans n'importe quel jeu, seuls certains effets physiques sont intéressants. La dynamique corporelle rigide - le mouvement et l'interaction d'objets solides et inflexibles - est de loin le type d'effet le plus populaire simulé dans les jeux. En effet, la plupart des objets avec lesquels nous interagissons dans la vie réelle sont assez rigides et la simulation de corps rigides est relativement simple (même si, comme nous le verrons, cela ne signifie pas que ce soit une promenade). Quelques autres jeux nécessitent cependant la simulation d'entités plus complexes, telles que des corps déformables, des fluides, des objets magnétiques, etc.

Dans cette série de didacticiels de physique de jeux vidéo, la simulation de corps rigide sera explorée, en commençant par un simple mouvement de corps rigide dans cet article, puis en couvrant les interactions entre les corps par le biais de collisions et de contraintes dans les parties suivantes. Les équations les plus courantes utilisées dans les moteurs de physique des jeux modernes tels que Box2D , Physique des balles et Physique Chipmunk sera présenté et expliqué.



Dynamique du corps rigide

Dans la physique des jeux vidéo, nous voulons animer des objets à l'écran et leur donner un comportement physique réaliste. Ceci est réalisé avec une animation procédurale basée sur la physique, qui est une animation produite par des calculs numériques appliqués aux lois théoriques de la physique.

Les animations sont produites en affichant une séquence d'images successivement, avec des objets se déplaçant légèrement d'une image à l'autre. Lorsque les images sont affichées en succession rapide, l'effet est un mouvement apparent lisse et continu des objets. Ainsi, pour animer les objets dans une simulation physique, il faut mettre à jour l'état physique des objets (ex: position et orientation), selon les lois de la physique plusieurs fois par seconde, et redessiner l'écran après chaque mise à jour.



La moteur physique est le composant logiciel qui effectue la simulation physique. Il reçoit une spécification des corps qui vont être simulés, ainsi que quelques paramètres de configuration, puis la simulation peut être fait un pas . Chaque étape fait avancer la simulation de quelques fractions de seconde, et les résultats peuvent être affichés à l'écran par la suite. Notez que les moteurs physiques n'effectuent que la simulation numérique. Ce qui est fait avec les résultats peut dépendre des exigences du jeu. Ce n'est pas toujours le cas que les résultats de chaque étape veulent être dessinés à l'écran.

g.co/express/bonjour

Le mouvement des corps rigides peut être modélisé en utilisant mécanique newtonienne , qui est fondée sur le célèbre d'Isaac Newton Trois lois du mouvement :



  1. Inertie : Si aucune force n'est appliquée sur un objet, sa vitesse (vitesse et direction du mouvement) ne doit pas changer.

  2. Force, masse et accélération : La force agissant sur un objet est égale à la masse de l'objet multipliée par son accélération (taux de changement de vitesse). Ceci est donné par la formule F = ma .



  3. Action et réaction : «Pour chaque action, il y a une réaction égale et opposée.» En d'autres termes, chaque fois qu'un corps exerce une force sur un autre, le second corps exerce une force de même ampleur et de direction opposée sur le premier.

Sur la base de ces trois lois, nous pouvons créer un moteur physique capable de reproduire le comportement dynamique que nous connaissons si bien, et ainsi créer une expérience immersive pour le joueur.

Le schéma suivant montre un aperçu de haut niveau de la procédure générale d'un moteur physique:

Un moteur physique qui fonctionne bien est essentiel dans la physique et la programmation des jeux vidéo.

Vecteurs

Afin de comprendre le fonctionnement des simulations physiques, il est essentiel d'avoir une compréhension de base des vecteurs et de leurs opérations. Si vous êtes déjà familiarisé avec les mathématiques vectorielles, lisez la suite. Mais si vous ne l'êtes pas, ou si vous voulez rafraîchir, prenez une minute pour revoir le appendice à la fin de cet article.

Simulation de particules

Un bon tremplin pour comprendre la simulation de corps rigides est de commencer par les particules. Simuler des particules est plus simple que simuler des corps rigides, et nous pouvons simuler ces derniers en utilisant les mêmes principes, mais en ajoutant du volume et de la forme aux particules.

Une particule est juste un point dans l'espace qui a un vecteur de position, un vecteur de vitesse et une masse. Selon la première loi de Newton, sa vitesse ne changera que lorsqu'une force lui sera appliquée. Lorsque son vecteur de vitesse a une longueur non nulle, sa position changera avec le temps.

Pour simuler un système de particules, nous devons d'abord créer un tableau de particules avec un état initial. Chaque particule doit avoir une masse fixe, une position initiale dans l'espace et une vitesse initiale. Ensuite, nous devons démarrer la boucle principale de la simulation où, pour chaque particule, nous devons calculer la force qui agit actuellement sur elle, mettre à jour sa vitesse à partir de l'accélération produite par la force, puis mettre à jour sa position en fonction de la vitesse nous venons de calculer.

La force peut provenir de différentes sources selon le type de simulation. Cela peut être la gravité, le vent ou le magnétisme, entre autres - ou cela peut être une combinaison de ceux-ci. Ce peut être une force globale, telle qu'une gravité constante, ou une force entre des particules, telle qu'une attraction ou une répulsion.

Pour que la simulation s'exécute à un rythme réaliste, le pas de temps que nous «simulons» doit être le même que le temps réel écoulé depuis la dernière étape de simulation. Cependant, cette étape de temps peut être augmentée pour accélérer l'exécution de la simulation, ou réduite pour qu'elle s'exécute au ralenti.

Supposons que nous ayons une particule de masse m , position p ( t je)et vitesse v ( t je)à un instant du temps t je. Une force F ( t je)est appliqué sur cette particule à ce moment-là. La position et la vitesse de cette particule à un moment futur t i + 1, p ( t i + 1)et v ( t i + 1)respectivement, peuvent être calculés avec:

Euler semi-implicite

En termes techniques, ce que nous faisons ici est d'intégrer numériquement une équation différentielle ordinaire du mouvement d'une particule en utilisant la méthode semi-implicite d'Euler, qui est la méthode utilisée par la plupart des moteurs de physique de jeu en raison de sa simplicité et de sa précision acceptable pour de petites valeurs de le laps de temps, DT . La Principes de base de l'équation différentielle notes de cours de l'incroyable Modélisation basée sur la physique: principes et pratique bien sûr, par les Drs. Andy Witkin et David Baraff, est un bel article pour approfondir la méthodologie numérique de cette méthode.

Voici un exemple de simulation de particules en langage C.

#define NUM_PARTICLES 1 // Two dimensional vector. typedef struct { float x; float y; } Vector2; // Two dimensional particle. typedef struct { Vector2 position; Vector2 velocity; float mass; } Particle; // Global array of particles. Particle particles[NUM_PARTICLES]; // Prints all particles' position to the output. We could instead draw them on screen // in a more interesting application. void PrintParticles() { for (int i = 0; i position.x, particle->position.y); } } // Initializes all particles with random positions, zero velocities and 1kg mass. void InitializeParticles() { for (int i = 0; i mass * -9.81}; } void RunSimulation() { float totalSimulationTime = 10; // The simulation will run for 10 seconds. float currentTime = 0; // This accumulates the time that has passed. float dt = 1; // Each step will take one second. InitializeParticles(); PrintParticles(); while (currentTime mass}; particle->velocity.x += acceleration.x * dt; particle->velocity.y += acceleration.y * dt; particle->position.x += particle->velocity.x * dt; particle->position.y += particle->velocity.y * dt; } PrintParticles(); currentTime += dt; } }

Si vous appelez le RunSimulation fonction (pour une seule particule), il affichera quelque chose comme:

particle[0] (-8.00, 57.00) particle[0] (-8.00, 47.19) particle[0] (-8.00, 27.57) particle[0] (-8.00, -1.86) particle[0] (-8.00, -41.10) particle[0] (-8.00, -90.15) particle[0] (-8.00, -149.01) particle[0] (-8.00, -217.68) particle[0] (-8.00, -296.16) particle[0] (-8.00, -384.45) particle[0] (-8.00, -482.55)

Comme vous pouvez le voir, la particule a commencé au niveau de (-8, 57) position puis son y coordonnée a commencé à baisser de plus en plus vite, car elle accélérait vers le bas sous la force de la gravité.

L'animation suivante donne une représentation visuelle d'une séquence de trois étapes d'une seule particule simulée:

Animation de particules

Initialement, à t = 0, la particule est à p 0. Après un pas, il se déplace dans la direction de son vecteur vitesse v 0pointait. Dans la prochaine étape une force F unlui est appliqué, et le vecteur de vitesse commence à changer comme s'il était tiré dans la direction du vecteur de force. Dans les deux étapes suivantes, le vecteur de force change de direction mais continue de tirer la particule vers le haut.

Simulation de corps rigide

À corps rigide est un solide qui ne peut pas se déformer. De tels solides n'existent pas dans le monde réel - même les matériaux les plus durs se déforment au moins une très petite quantité lorsqu'une force leur est appliquée - mais le corps rigide est un modèle de physique utile pour les développeurs de jeux qui simplifie l'étude de la dynamique de solides où l'on peut négliger les déformations.

Un corps rigide est comme une extension d'une particule car il a également une masse, une position et une vitesse. De plus, il a du volume et une forme, ce qui lui permet de tourner. Cela ajoute plus de complexité qu'il n'y paraît, surtout en trois dimensions.

Un corps rigide tourne naturellement autour de son le centre de masse , et la position d'un corps rigide est considérée comme la position de son centre de masse. On définit l'état initial du corps rigide avec son centre de masse à l'origine et un angle de rotation nul. Sa position et sa rotation à tout instant t va être un décalage de l'état initial.

Comprendre la physique des jeux vidéo est essentiel pour créer un jeu avec moins de bugs et plus de fans.

Le centre de masse est le point médian de la distribution de masse d'un corps. Si vous imaginez qu'un corps rigide avec une masse M est constitué de N minuscules particules, chacune avec une masse m jeet emplacement r jeà l'intérieur du corps, le centre de gravité peut être calculé comme suit:

Le centre de masse

Cette formule montre que le centre de masse est la moyenne des positions des particules pondérées par leur masse. Si la densité du corps est uniforme partout, le centre de masse est le même que le centre géométrique de la forme du corps, également connu sous le nom de centroïde . Les moteurs de physique de jeu ne prennent généralement en charge qu'une densité uniforme, de sorte que le centre géométrique peut être utilisé comme centre de masse.

Les corps rigides ne sont pas constitués d'un nombre fini de particules discrètes, ils sont continu . Pour cette raison, nous devrions le calculer en utilisant un intégral au lieu d'une somme finie, comme ceci:

Centre de masse intégrale

où r est le vecteur de position de chaque point, et(rho) est une fonction qui donne la densité en chaque point du corps. Essentiellement, cette intégrale fait la même chose que la somme finie, mais elle le fait dans un volume continu V .

Puisqu'un corps rigide peut tourner, nous devons introduire son angulaire propriétés, qui sont analogues aux propriétés linéaires d’une particule. En deux dimensions, un corps rigide ne peut tourner que autour de l'axe qui pointe hors de l'écran, nous n'avons donc besoin que d'un seul scalaire pour représenter son orientation. Nous utilisons habituellement radians (qui vont de 0 à 2Pipour un cercle complet) comme unité ici au lieu d'angles (qui vont de 0 à 360 pour un cercle complet), car cela simplifie les calculs.

Pour tourner, un corps rigide a besoin vitesse angulaire , qui est un scalaire avec unité radians par seconde et qui est généralement représenté par la lettre grecque ω (oméga). Cependant, pour gagner en vitesse angulaire, le corps doit recevoir une force de rotation, que nous appelons couple , représenté par la lettre grecque τ (tau). Ainsi, la deuxième loi de Newton appliquée à la rotation est:

2ème loi des rotations

où une (alpha) est l'accélération angulaire et je est le moment d'inertie .

Pour les rotations, le moment d'inertie est analogue à la masse pour un mouvement linéaire. Il définit la difficulté de modifier la vitesse angulaire d'un corps rigide. En deux dimensions, il s'agit d'un scalaire et se définit comme:

Moment d

où V signifie que cette intégrale doit être effectuée pour tous les points du volume corporel, r est le vecteur de position de chaque point par rapport à l'axe de rotation, r 2est en fait le produit scalaire de r avec lui-même, etest une fonction qui donne la densité en chaque point du corps.

comment évaluer une option

Par exemple, le moment d'inertie d'une boîte à 2 dimensions avec masse m , largeur dans et hauteur h à propos de son centre de gravité est:

Moment d

Ici vous pouvez trouver une liste de formules pour calculer le moment d'inertie pour un groupe de formes autour de différents axes.

Lorsqu'une force est appliquée à un point sur un corps rigide, elle peut produire un couple. En deux dimensions, le couple est un scalaire, et le couple τ généré par une force F appliqué en un point du corps qui a un vecteur de décalage r du centre de gravité:

Couple 2D

où θ (thêta) est le plus petit angle entre F et r .

Le diagramme peut vous aider à comprendre le contenu de ce didacticiel de physique des jeux vidéo.

La formule précédente est exactement la formule de la longueur du produit croisé entre r et F . Ainsi, en trois dimensions, nous pouvons le faire:

Couple

Une compréhension approfondie de la physique pour les développeurs de jeux fait la différence entre une bonne et une mauvaise expérience utilisateur dans le produit final.

Une simulation bidimensionnelle peut être vue comme une simulation tridimensionnelle où tous les corps rigides sont minces et plats, et tout se passe sur le xy -plan, ce qui signifie qu'il n'y a aucun mouvement dans le avec -axe. Cela signifie que F et r sont toujours dans le xy avion et ainsi τ aura toujours zéro X et Oui composants car le produit transversal sera toujours perpendiculaire au xy -avion. Cela signifie à son tour qu'il sera toujours parallèle au avec -axe. Ainsi, seul le avec composante des produits croisés est importante. Cela conduit à ce que le calcul du couple en deux dimensions peut être simplifié pour:

Couple 2D

La physique des jeux vidéo peut être compliquée. L

C’est incroyable à quel point l’ajout d’une seule dimension supplémentaire à la simulation complique considérablement les choses. En trois dimensions, l'orientation d'un corps rigide doit être représentée par un quaternion , qui est une sorte de vecteur à quatre éléments. Le moment d'inertie est représenté par une matrice 3x3, appelée le tenseur d'inertie , qui n'est pas constante car elle dépend de l'orientation du corps rigide, et varie donc dans le temps lorsque le corps tourne. Pour apprendre tous les détails sur la simulation de corps rigides 3D, vous pouvez consulter l'excellent Simulation de corps rigides I - Dynamique de corps rigides sans contrainte , qui fait également partie de Witkin and Baraff’s Modélisation basée sur la physique: principes et pratique cours.

L'algorithme de simulation est très similaire à celui de la simulation de particules. Il suffit d'ajouter la forme et les propriétés de rotation des corps rigides:

#define NUM_RIGID_BODIES 1 // 2D box shape. Physics engines usually have a couple different classes of shapes // such as circles, spheres (3D), cylinders, capsules, polygons, polyhedrons (3D)... typedef struct { float width; float height; float mass; float momentOfInertia; } BoxShape; // Calculates the inertia of a box shape and stores it in the momentOfInertia variable. void CalculateBoxInertia(BoxShape *boxShape) { float m = boxShape->mass; float w = boxShape->width; float h = boxShape->height; boxShape->momentOfInertia = m * (w * w + h * h) / 12; } // Two dimensional rigid body typedef struct { Vector2 position; Vector2 linearVelocity; float angle; float angularVelocity; Vector2 force; float torque; BoxShape shape; } RigidBody; // Global array of rigid bodies. RigidBody rigidBodies[NUM_RIGID_BODIES]; // Prints the position and angle of each body on the output. // We could instead draw them on screen. void PrintRigidBodies() { for (int i = 0; i position.x, rigidBody->position.y, rigidBody->angle); } } // Initializes rigid bodies with random positions and angles and zero linear and angular velocities. // They're all initialized with a box shape of random dimensions. void InitializeRigidBodies() { for (int i = 0; i position = (Vector2){arc4random_uniform(50), arc4random_uniform(50)}; rigidBody->angle = arc4random_uniform(360)/360.f * M_PI * 2; rigidBody->linearVelocity = (Vector2){0, 0}; rigidBody->angularVelocity = 0; BoxShape shape; shape.mass = 10; shape.width = 1 + arc4random_uniform(2); shape.height = 1 + arc4random_uniform(2); CalculateBoxInertia(&shape); rigidBody->shape = shape; } } // Applies a force at a point in the body, inducing some torque. void ComputeForceAndTorque(RigidBody *rigidBody) { Vector2 f = (Vector2){0, 100}; rigidBody->force = f; // r is the 'arm vector' that goes from the center of mass to the point of force application Vector2 r = (Vector2){rigidBody->shape.width / 2, rigidBody->shape.height / 2}; rigidBody->torque = r.x * f.y - r.y * f.x; } void RunRigidBodySimulation() { float totalSimulationTime = 10; // The simulation will run for 10 seconds. float currentTime = 0; // This accumulates the time that has passed. float dt = 1; // Each step will take one second. InitializeRigidBodies(); PrintRigidBodies(); while (currentTime shape.mass, rigidBody->force.y / rigidBody->shape.mass}; rigidBody->linearVelocity.x += linearAcceleration.x * dt; rigidBody->linearVelocity.y += linearAcceleration.y * dt; rigidBody->position.x += rigidBody->linearVelocity.x * dt; rigidBody->position.y += rigidBody->linearVelocity.y * dt; float angularAcceleration = rigidBody->torque / rigidBody->shape.momentOfInertia; rigidBody->angularVelocity += angularAcceleration * dt; rigidBody->angle += rigidBody->angularVelocity * dt; } PrintRigidBodies(); currentTime += dt; } }

Appel RunRigidBodySimulation pour un seul corps rigide sort sa position et son angle, comme ceci:

body[0] p = (36.00, 12.00), a = 0.28 body[0] p = (36.00, 22.00), a = 15.28 body[0] p = (36.00, 42.00), a = 45.28 body[0] p = (36.00, 72.00), a = 90.28 body[0] p = (36.00, 112.00), a = 150.28 body[0] p = (36.00, 162.00), a = 225.28 body[0] p = (36.00, 222.00), a = 315.28 body[0] p = (36.00, 292.00), a = 420.28 body[0] p = (36.00, 372.00), a = 540.28 body[0] p = (36.00, 462.00), a = 675.28 body[0] p = (36.00, 562.00), a = 825.28

Puisqu'une force ascendante de 100 Newtons est appliquée, seul leOuicoordonner les changements. La force n'est pas appliquée directement sur le centre de masse, et donc elle induit un couple, provoquant une augmentation de l'angle de rotation (rotation anti-horaire).

Le résultat graphique est similaire à l'animation des particules, mais nous avons maintenant des formes en mouvement et en rotation.

Animation de corps rigide

C'est un non contraint simulation, car les corps peuvent bouger librement et n'interagissent pas entre eux - ils ne se heurtent pas. Les simulations sans collisions sont assez ennuyeuses et peu utiles. Dans le prochain épisode de cette série, nous parlerons de la détection de collision et de la manière de résoudre une collision une fois qu'elle a été détectée.

Annexe: vecteurs

À vecteur est une entité qui a un longueur (ou, plus formellement, un ordre de grandeur ) et un direction . Il peut être représenté intuitivement dans le système de coordonnées cartésiennes , où nous le décomposons en deux composants, X et Oui , dans un espace bidimensionnel, ou trois composants, X , Oui , et avec , dans un espace tridimensionnel.

Les didacticiels de programmation de jeux n

quel site propose un tuto pour apprendre la programmation c

Comprendre la physique des jeux vidéo rend le travail d

Nous représentons un vecteur avec un caractère gras et minuscule, et ses composants par un caractère régulier identique avec l'indice du composant. Par exemple:

Vec2D

représente un vecteur à 2 dimensions. Chaque composant est la distance de l'origine dans l'axe de coordonnées correspondant.

Les moteurs physiques ont généralement leurs propres bibliothèques mathématiques légères et hautement optimisées. La Physique des balles engine, par exemple, a une bibliothèque mathématique découplée appelée Mathématiques linéaires qui peut être utilisé seul sans aucune des fonctionnalités de simulation physique de Bullet. Il a des classes qui représentent des entités telles que des vecteurs et des matrices, et il exploite SIMD instructions si disponibles.

Certaines des opérations algébriques fondamentales qui opèrent sur des vecteurs sont examinées ci-dessous.

Longueur

L'opérateur de longueur, ou magnitude, est représenté par|| ||. La longueur d'un vecteur peut être calculée à partir de ses composants en utilisant le célèbre théorème de Pythagore pour les triangles rectangles. Par exemple, en deux dimensions:

Vec2DLongueur

Négation

Lorsqu'un vecteur est annulé, la longueur reste la même, mais la direction change exactement à l'opposé. Par exemple, étant donné:

Vec2D

la négation est:

négation

La physique pour le développement de jeux est un moyen plus simple de simuler ce qui arriverait à des corps rigides si le mouvement se produisait dans le monde réel.

Addition et soustraction

Les vecteurs peuvent être ajoutés ou soustraits les uns aux autres. Soustraire deux vecteurs revient à ajouter l'un à la négation de l'autre. Dans ces opérations, nous ajoutons ou soustrayons simplement chaque composant:

AjouterSubtract

Le vecteur résultant peut être visualisé comme pointant vers le même point que les deux vecteurs d'origine s'ils étaient connectés de bout en bout:

Ce didacticiel de physique des jeux vidéo fournit des instructions et des diagrammes pour améliorer les compétences des développeurs de jeux.

Multiplication scalaire

Lorsqu'un vecteur est multiplié par un scalaire (pour les besoins de ce didacticiel, un scalaire est simplement n'importe quel nombre réel), la longueur du vecteur change de ce montant. Si le scalaire est négatif, il fait également pointer le vecteur dans la direction opposée.

ScalarVec2D

Multiplication scalaire

Produit scalaire

La produit scalaire L'opérateur prend deux vecteurs et génère un nombre scalaire. Il est défini comme:

Produit scalaire

oùîleest l'angle entre les deux vecteurs. Sur le plan informatique, il est beaucoup plus simple de le calculer en utilisant les composantes des vecteurs, c'est-à-dire:

exprimer js vs nœud js

DotProductComponents

La valeur du produit scalaire équivaut à la longueur du projection du vecteur à sur le vecteur b , multiplié par la longueur de b . Cette action peut également être inversée, en prenant la longueur de la projection de b sur à , et en multipliant par la longueur de à , produisant le même résultat. Cela signifie que le produit scalaire est commutatif - le produit scalaire de à avec b est le même que le produit scalaire de b avec à . Une propriété utile du produit scalaire est que sa valeur est zéro si les vecteurs sont orthogonaux (l'angle entre eux est de 90 degrés), carcos 90 = 0.

Produit croisé

En trois dimensions, nous pouvons également multiplier deux vecteurs pour générer un autre vecteur en utilisant le produit croisé opérateur. Il est défini comme:

Produit croisé

et la longueur du produit croisé est:

CrossLength

oùîleest le plus petit angle entre à et b . Le résultat est un vecteur c qui est orthogonal (perpendiculaire) aux deux à et b . Si à et b sont parallèles, c'est-à-dire que l'angle entre eux est de zéro ou de 180 degrés, c va être le vecteur zéro, carsin 0 = sin 180 = 0.

Contrairement au produit scalaire, le produit croisé n'est pas commutatif. L'ordre des éléments dans le produit croisé est important, car:

CrossCommute

La direction du résultat peut être déterminée par le règle de la main droite . Ouvrez votre main droite et pointez votre index dans la même direction à et orientez votre main de manière à ce que lorsque vous faites un poing, vos doigts se dirigent droit vers b par le plus petit angle entre ces vecteurs. Maintenant, votre pouce pointe dans la direction de à × b .

La règle de la main droite s

Think Business - Comment augmenter la valeur de votre concepteur

Procédé De Design

Think Business - Comment augmenter la valeur de votre concepteur
Créer un code vraiment modulaire sans dépendances

Créer un code vraiment modulaire sans dépendances

Gestion De Projet

Articles Populaires
Conception de page de destination: création de la page de destination ultime
Conception de page de destination: création de la page de destination ultime
Modèles de fiches de conditions - Clauses à surveiller lors de la négociation
Modèles de fiches de conditions - Clauses à surveiller lors de la négociation
Promesses JavaScript: un tutoriel avec des exemples
Promesses JavaScript: un tutoriel avec des exemples
Introduction à OpenGL: un didacticiel sur le rendu de texte 3D
Introduction à OpenGL: un didacticiel sur le rendu de texte 3D
C Corp contre S Corp, partenariat, entreprise individuelle et LLC: quelle est la meilleure entité commerciale?
C Corp contre S Corp, partenariat, entreprise individuelle et LLC: quelle est la meilleure entité commerciale?
 
Les marchés à millions de dollars sont-ils meilleurs que les marchés à milliards de dollars?
Les marchés à millions de dollars sont-ils meilleurs que les marchés à milliards de dollars?
Créer un curseur de page complète personnalisé avec CSS et JavaScript
Créer un curseur de page complète personnalisé avec CSS et JavaScript
La métaprogrammation Ruby est encore plus cool qu'il n'y paraît
La métaprogrammation Ruby est encore plus cool qu'il n'y paraît
Blockchain, IoT et l'avenir des transports: comprendre la devise du moteur
Blockchain, IoT et l'avenir des transports: comprendre la devise du moteur
Explorer les algorithmes d'apprentissage automatique supervisé
Explorer les algorithmes d'apprentissage automatique supervisé
Articles Populaires
  • lequel de ces éléments n'est pas pris en compte lors de la configuration d'un appareil mobile pour recevoir des e-mails ?
  • exécuter sur le fil d'interface utilisateur android
  • qu'est-ce que le réglage des performances dans le serveur SQL
  • pourquoi la proportion est-elle importante dans une conception
  • conduire pour uber vs lyft 2017
  • comment rédiger une documentation technique pour un logiciel
Catégories
  • Mode De Vie
  • Rise Of Remote
  • Processus Financiers
  • Gestion De Projet
  • © 2022 | Tous Les Droits Sont Réservés

    portaldacalheta.pt