Maison  >  Article  >  Java  >  Comment faire pivoter un polygone verticalement autour de l’axe X en Java ?

Comment faire pivoter un polygone verticalement autour de l’axe X en Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-27 07:25:29242parcourir

How to Rotate a Polygon Vertically Around the X-Axis in Java?

Rotation d'une forme verticalement autour de l'axe x

Le code Java fourni tente de faire pivoter un polygone verticalement autour de l'axe x, mais la rotation est appliquée le long d'un axe horizontal. Pour faire pivoter le polygone verticalement, le code doit appliquer une transformation de rotation à l'objet Graphics2D du polygone au lieu de l'appliquer directement aux coordonnées du polygone.

Pour y parvenir, les modifications suivantes doivent être apportées au code :

  1. Créez un objet Graphics2D à partir de l'objet Graphics fourni :
<code class="java">Graphics2D g2d = (Graphics2D) g;</code>
  1. Définissez les conseils de rendu pour activer l'anti-aliasing :
<code class="java">g2d.setRenderingHint(
    RenderingHints.KEY_ANTIALIASING,
    RenderingHints.VALUE_ANTIALIAS_ON);</code>
  1. Calculez le point central du polygone :
<code class="java">int centerX = (int) p2x.sum() / p2x.length;
int centerY = (int) p2y.sum() / p2y.length;</code>
  1. Traduisez l'objet Graphics2D au centre du polygone :
<code class="java">g2d.translate(centerX - (getWidth() / 2), centerY - (getHeight() / 2));</code>
  1. Faites pivoter l'objet Graphics2D autour de l'axe des x :
<code class="java">g2d.rotate(Math.toRadians(angle), 0, getHeight() / 2);</code>
  1. Dessinez le polygone à l'aide de l'objet Graphics2D transformé :
<code class="java">g2d.drawPolygon(p2);</code>

Avec ces changements, le polygone pivotera verticalement autour de l'axe des x.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn