Comment faire tourner un triangle sur une grille

<article data-type="article">

rotations à deux dimensions reviennent souvent dans la production d`image numérique et la programmation de jeux. Comme les objets se déplacent dans un monde virtuel, ils peuvent à la fois traduire et faire pivoter. En deux dimensions, une rotation est définie par un axe, le point autour duquel la rotation a lieu et l`angle de rotation. Pour faire tourner un triangle, vous tournez les trois sommets qui définissent le triangle.

Triangle de la grille

  • Points sur une grille à deux dimensions sont écrites (x, y). Un triangle a trois de ces points, qui définissent une chaque sommet. Par exemple, on pourrait qualifier ces P1 = (x1, y1), P2 = (x2, y2) et P3 = (x3, y3).

Rotations autour de l`origine




  • Si vous faites pivoter un point p d`un angle # 952-, vous obtenez un nouveau point p `= (x`, y `) où x` = x # 8729-cos (# 952-) - y # 8729-sin (# 952-) et y `= y # 8729-cos (# 952-) + x # 8729-sin (# 952-). Pour faire tourner un triangle, vous appliquez ce processus à p1, p2 et p3.

Rotations autour d`un axe arbitraire

  • Pour faire pivoter autour d`un axe arbitraire, vous traduisez l`axe à l`origine, en prenant le point p avec elle, d`effectuer la rotation comme ci-dessus, puis annuler la traduction. Soit P = (X, Y) de l`axe. Traduire à la fois l`axe et le point à l`origine en soustrayant P. Cela donne un nouvel axe, P = P - P = (0, 0), et un nouveau point p = (X, y) = P-P = (x - x, y - Y). Effectuer la rotation comme d`habitude sur p. Enfin, annuler la traduction initiale en ajoutant P pour obtenir x `= X + (x - X) # 8729-cos (# 952-) - (y - Y) # 8729-sin (# 952-) et y` = Y + (y - Y) # 8729-cos (# 952-) + (x - X) # 8729-sin (# 952-). Répétez ce processus pour chaque point.

Exemple

  • Soit un triangle défini par les points p1 = (1,1) P2 = (2,3) et p3 = (4,2). Faites tourner le triangle autour du point P = (3, -1) par 23 degrés. En utilisant la formule, p1 - P = (-2,2) et p1`_x = 3 + (-2) # 8729-cos (23) - 2 # 8729-sin (23) = 0,3775, et p1`_y = - 1 + 2 # 8729-cos (23) + (-2) # 8729-sin (23) = 0,0595. Transformer les autres points de la même façon, nous avons les nouveaux points: p1 `= (0,3775, 0,0595), p2` = (0,5166, 2,2913) et p3 `= (2,7483, 2,1522).

AUTRES

» » » » Comment faire tourner un triangle sur une grille