Files
godot-docs-l10n/classes/fr/class_geometry3d.rst

255 lines
23 KiB
ReStructuredText
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. _class_Geometry3D:
Geometry3D
==========
**Hérite de:** :ref:`Object<class_Object>`
Fournit des méthodes pour certaines opérations géométriques 3D communes.
.. rst-class:: classref-introduction-group
Description
-----------
Fournit un ensemble de fonctions d'aide pour créer des formes géométriques, calculer des intersections entre des formes, et traiter différentes autres opérations géométriques en 3D.
.. rst-class:: classref-reftable-group
Méthodes
----------------
.. table::
:widths: auto
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>`\[:ref:`Plane<class_Plane>`\] | :ref:`build_box_planes<class_Geometry3D_method_build_box_planes>`\ (\ extents\: :ref:`Vector3<class_Vector3>`\ ) |
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>`\[:ref:`Plane<class_Plane>`\] | :ref:`build_capsule_planes<class_Geometry3D_method_build_capsule_planes>`\ (\ radius\: :ref:`float<class_float>`, height\: :ref:`float<class_float>`, sides\: :ref:`int<class_int>`, lats\: :ref:`int<class_int>`, axis\: :ref:`Axis<enum_Vector3_Axis>` = 2\ ) |
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>`\[:ref:`Plane<class_Plane>`\] | :ref:`build_cylinder_planes<class_Geometry3D_method_build_cylinder_planes>`\ (\ radius\: :ref:`float<class_float>`, height\: :ref:`float<class_float>`, sides\: :ref:`int<class_int>`, axis\: :ref:`Axis<enum_Vector3_Axis>` = 2\ ) |
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`clip_polygon<class_Geometry3D_method_clip_polygon>`\ (\ points\: :ref:`PackedVector3Array<class_PackedVector3Array>`, plane\: :ref:`Plane<class_Plane>`\ ) |
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`compute_convex_mesh_points<class_Geometry3D_method_compute_convex_mesh_points>`\ (\ planes\: :ref:`Array<class_Array>`\[:ref:`Plane<class_Plane>`\]\ ) |
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`get_closest_point_to_segment<class_Geometry3D_method_get_closest_point_to_segment>`\ (\ point\: :ref:`Vector3<class_Vector3>`, s1\: :ref:`Vector3<class_Vector3>`, s2\: :ref:`Vector3<class_Vector3>`\ ) |
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`get_closest_point_to_segment_uncapped<class_Geometry3D_method_get_closest_point_to_segment_uncapped>`\ (\ point\: :ref:`Vector3<class_Vector3>`, s1\: :ref:`Vector3<class_Vector3>`, s2\: :ref:`Vector3<class_Vector3>`\ ) |
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`get_closest_points_between_segments<class_Geometry3D_method_get_closest_points_between_segments>`\ (\ p1\: :ref:`Vector3<class_Vector3>`, p2\: :ref:`Vector3<class_Vector3>`, q1\: :ref:`Vector3<class_Vector3>`, q2\: :ref:`Vector3<class_Vector3>`\ ) |
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`get_triangle_barycentric_coords<class_Geometry3D_method_get_triangle_barycentric_coords>`\ (\ point\: :ref:`Vector3<class_Vector3>`, a\: :ref:`Vector3<class_Vector3>`, b\: :ref:`Vector3<class_Vector3>`, c\: :ref:`Vector3<class_Vector3>`\ ) |
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Variant<class_Variant>` | :ref:`ray_intersects_triangle<class_Geometry3D_method_ray_intersects_triangle>`\ (\ from\: :ref:`Vector3<class_Vector3>`, dir\: :ref:`Vector3<class_Vector3>`, a\: :ref:`Vector3<class_Vector3>`, b\: :ref:`Vector3<class_Vector3>`, c\: :ref:`Vector3<class_Vector3>`\ ) |
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`segment_intersects_convex<class_Geometry3D_method_segment_intersects_convex>`\ (\ from\: :ref:`Vector3<class_Vector3>`, to\: :ref:`Vector3<class_Vector3>`, planes\: :ref:`Array<class_Array>`\[:ref:`Plane<class_Plane>`\]\ ) |
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`segment_intersects_cylinder<class_Geometry3D_method_segment_intersects_cylinder>`\ (\ from\: :ref:`Vector3<class_Vector3>`, to\: :ref:`Vector3<class_Vector3>`, height\: :ref:`float<class_float>`, radius\: :ref:`float<class_float>`\ ) |
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`segment_intersects_sphere<class_Geometry3D_method_segment_intersects_sphere>`\ (\ from\: :ref:`Vector3<class_Vector3>`, to\: :ref:`Vector3<class_Vector3>`, sphere_position\: :ref:`Vector3<class_Vector3>`, sphere_radius\: :ref:`float<class_float>`\ ) |
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Variant<class_Variant>` | :ref:`segment_intersects_triangle<class_Geometry3D_method_segment_intersects_triangle>`\ (\ from\: :ref:`Vector3<class_Vector3>`, to\: :ref:`Vector3<class_Vector3>`, a\: :ref:`Vector3<class_Vector3>`, b\: :ref:`Vector3<class_Vector3>`, c\: :ref:`Vector3<class_Vector3>`\ ) |
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedInt32Array<class_PackedInt32Array>` | :ref:`tetrahedralize_delaunay<class_Geometry3D_method_tetrahedralize_delaunay>`\ (\ points\: :ref:`PackedVector3Array<class_PackedVector3Array>`\ ) |
+--------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Descriptions des méthodes
--------------------------------------------------
.. _class_Geometry3D_method_build_box_planes:
.. rst-class:: classref-method
:ref:`Array<class_Array>`\[:ref:`Plane<class_Plane>`\] **build_box_planes**\ (\ extents\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_Geometry3D_method_build_box_planes>`
Renvoie un tableau avec 6 :ref:`Plane<class_Plane>`\ s qui décrivent les côtés d'une boîte centrée sur l'origine. La taille de la boîte est définie par ses limites ``extents``, qui représente un coin (positif) de la boîte (c.-à-d. la moitié de sa taille réelle).
.. rst-class:: classref-item-separator
----
.. _class_Geometry3D_method_build_capsule_planes:
.. rst-class:: classref-method
:ref:`Array<class_Array>`\[:ref:`Plane<class_Plane>`\] **build_capsule_planes**\ (\ radius\: :ref:`float<class_float>`, height\: :ref:`float<class_float>`, sides\: :ref:`int<class_int>`, lats\: :ref:`int<class_int>`, axis\: :ref:`Axis<enum_Vector3_Axis>` = 2\ ) :ref:`🔗<class_Geometry3D_method_build_capsule_planes>`
Renvoie un tableau de :ref:`Plane<class_Plane>`\ s qui en-cloisonne le plus proche possible une capsule à facettes centrée à l'origine avec un rayon ``radius`` et une hauteur ``height``. Le paramètre ``sides`` définit combien de plans seront générés pour la partie latérale de la capsule, alors que ``lats`` donne le nombre de pas latitudinaux en bas et en haut de la capsule. Le paramètre ``axis`` décrit l'axe le long duquel la capsule est orientée (0 pour X, 1 pour Y, 2 pour Z).
.. rst-class:: classref-item-separator
----
.. _class_Geometry3D_method_build_cylinder_planes:
.. rst-class:: classref-method
:ref:`Array<class_Array>`\[:ref:`Plane<class_Plane>`\] **build_cylinder_planes**\ (\ radius\: :ref:`float<class_float>`, height\: :ref:`float<class_float>`, sides\: :ref:`int<class_int>`, axis\: :ref:`Axis<enum_Vector3_Axis>` = 2\ ) :ref:`🔗<class_Geometry3D_method_build_cylinder_planes>`
Renvoie un tableau de :ref:`Plane<class_Plane>`\ s qui en-cloisonne le plus proche possible un cylindre à facettes centré à l'origine avec un rayon ``radius`` et une hauteur ``height``. Le paramètre ``sides`` définit combien de plans seront générés pour la partie ronde du cylindre. Le paramètre ``axis`` décrit l'axe le long duquel le cylindre est orienté (0 pour X, 1 pour Y, 2 pour Z).
.. rst-class:: classref-item-separator
----
.. _class_Geometry3D_method_clip_polygon:
.. rst-class:: classref-method
:ref:`PackedVector3Array<class_PackedVector3Array>` **clip_polygon**\ (\ points\: :ref:`PackedVector3Array<class_PackedVector3Array>`, plane\: :ref:`Plane<class_Plane>`\ ) :ref:`🔗<class_Geometry3D_method_clip_polygon>`
Coupe le polygone défini par les points dans ``points`` par le ``plane`` et renvoie les points du polygone coupé.
.. rst-class:: classref-item-separator
----
.. _class_Geometry3D_method_compute_convex_mesh_points:
.. rst-class:: classref-method
:ref:`PackedVector3Array<class_PackedVector3Array>` **compute_convex_mesh_points**\ (\ planes\: :ref:`Array<class_Array>`\[:ref:`Plane<class_Plane>`\]\ ) :ref:`🔗<class_Geometry3D_method_compute_convex_mesh_points>`
Calcule et renvoie tous les points des sommets d'une forme convexe définie par un tableau de plans ``planes``.
.. rst-class:: classref-item-separator
----
.. _class_Geometry3D_method_get_closest_point_to_segment:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **get_closest_point_to_segment**\ (\ point\: :ref:`Vector3<class_Vector3>`, s1\: :ref:`Vector3<class_Vector3>`, s2\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_Geometry3D_method_get_closest_point_to_segment>`
Renvoie le point 3D sur le segment 3D (``s1``, ``s2``) qui est le plus proche du point ``point``. Le point renvoyé sera toujours à l'intérieur du segment spécifié.
.. rst-class:: classref-item-separator
----
.. _class_Geometry3D_method_get_closest_point_to_segment_uncapped:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **get_closest_point_to_segment_uncapped**\ (\ point\: :ref:`Vector3<class_Vector3>`, s1\: :ref:`Vector3<class_Vector3>`, s2\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_Geometry3D_method_get_closest_point_to_segment_uncapped>`
Renvoie le point 3D sur la ligne 3D définie par (``s1``, ``s2``) qui est le plus proche du point ``point``. Le point renvoyé peut être à l'intérieur du segment (``s1``, ``s2``) ou à l'extérieur, c'est-à-dire quelque part sur la ligne s'étendant du segment.
.. rst-class:: classref-item-separator
----
.. _class_Geometry3D_method_get_closest_points_between_segments:
.. rst-class:: classref-method
:ref:`PackedVector3Array<class_PackedVector3Array>` **get_closest_points_between_segments**\ (\ p1\: :ref:`Vector3<class_Vector3>`, p2\: :ref:`Vector3<class_Vector3>`, q1\: :ref:`Vector3<class_Vector3>`, q2\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_Geometry3D_method_get_closest_points_between_segments>`
À partir des deux segments 3D (``p1``, ``q1``) et (``p2``, ``q2``), trouve les deux points sur les deux segments qui sont les plus proches l'un de l'autre. Renvoie un :ref:`PackedVector3Array<class_PackedVector3Array>` qui contient un point sur (``p1``, ``q1``) et le point sur (``p2``, ``q2``).
.. rst-class:: classref-item-separator
----
.. _class_Geometry3D_method_get_triangle_barycentric_coords:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **get_triangle_barycentric_coords**\ (\ point\: :ref:`Vector3<class_Vector3>`, a\: :ref:`Vector3<class_Vector3>`, b\: :ref:`Vector3<class_Vector3>`, c\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_Geometry3D_method_get_triangle_barycentric_coords>`
Renvoie un :ref:`Vector3<class_Vector3>` contenant des poids basés sur la proximité d'une position 3D (``point``) vers les différents sommets d'un triangle (``a``, ``b`` et ``c``). Ceci est utile pour interpoler entre les données de différents sommets dans un triangle. Un exemple de cas d'utilisation est d'utiliser cela pour tourner en douceur un maillage au lieu de se fier uniquement aux normales des faces.
\ `Voici une explication plus détaillée des coordonnées barycentriques. <https://fr.wikipedia.org/wiki/Coordonn%C3%A9es_barycentriques>`__
.. rst-class:: classref-item-separator
----
.. _class_Geometry3D_method_ray_intersects_triangle:
.. rst-class:: classref-method
:ref:`Variant<class_Variant>` **ray_intersects_triangle**\ (\ from\: :ref:`Vector3<class_Vector3>`, dir\: :ref:`Vector3<class_Vector3>`, a\: :ref:`Vector3<class_Vector3>`, b\: :ref:`Vector3<class_Vector3>`, c\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_Geometry3D_method_ray_intersects_triangle>`
Teste si le rayon 3D commençant à ``from`` avec la direction de ``dir`` intersecte le triangle spécifié par ``a``, ``b`` et ``c``. Si oui, renvoie le point d'intersection en tant que :ref:`Vector3<class_Vector3>`. Si aucune intersection n'a lieu, renvoie ``null``.
.. rst-class:: classref-item-separator
----
.. _class_Geometry3D_method_segment_intersects_convex:
.. rst-class:: classref-method
:ref:`PackedVector3Array<class_PackedVector3Array>` **segment_intersects_convex**\ (\ from\: :ref:`Vector3<class_Vector3>`, to\: :ref:`Vector3<class_Vector3>`, planes\: :ref:`Array<class_Array>`\[:ref:`Plane<class_Plane>`\]\ ) :ref:`🔗<class_Geometry3D_method_segment_intersects_convex>`
Étant donné une enveloppe convexe définie par les :ref:`Plane<class_Plane>`\ s dans le tableau ``planes``, teste si le segment (``from``, ``to``) intersecte cette enveloppe. Si une intersection est trouvée, renvoie un :ref:`PackedVector3Array<class_PackedVector3Array>` contenant le point d'intersection et la normale à l'enveloppe. Sinon, renvoie un tableau vide.
.. rst-class:: classref-item-separator
----
.. _class_Geometry3D_method_segment_intersects_cylinder:
.. rst-class:: classref-method
:ref:`PackedVector3Array<class_PackedVector3Array>` **segment_intersects_cylinder**\ (\ from\: :ref:`Vector3<class_Vector3>`, to\: :ref:`Vector3<class_Vector3>`, height\: :ref:`float<class_float>`, radius\: :ref:`float<class_float>`\ ) :ref:`🔗<class_Geometry3D_method_segment_intersects_cylinder>`
Vérifie si le segment (de ``from`` à ``to``) intersecte le cylindre avec une hauteur ``height`` qui est centré à l'origine et a un rayon ``radius``. Si non, renvoie un :ref:`PackedVector3Array<class_PackedVector3Array>` vide. S'il y a une intersection, le tableau renvoie contient le point d'intersection et la normale du cylindre au point d'intersection.
.. rst-class:: classref-item-separator
----
.. _class_Geometry3D_method_segment_intersects_sphere:
.. rst-class:: classref-method
:ref:`PackedVector3Array<class_PackedVector3Array>` **segment_intersects_sphere**\ (\ from\: :ref:`Vector3<class_Vector3>`, to\: :ref:`Vector3<class_Vector3>`, sphere_position\: :ref:`Vector3<class_Vector3>`, sphere_radius\: :ref:`float<class_float>`\ ) :ref:`🔗<class_Geometry3D_method_segment_intersects_sphere>`
Vérifie si le segment (de ``from`` à ``to``) intersecte la sphère à la position ``sphere_position`` et avec un rayon ``sphere_radius``. Si non, renvoie un :ref:`PackedVector3Array<class_PackedVector3Array>` vide. Si oui, renvoie un :ref:`PackedVector3Array<class_PackedVector3Array>` contenant le point d'intersection la normale de la sphère au point d'intersection.
.. rst-class:: classref-item-separator
----
.. _class_Geometry3D_method_segment_intersects_triangle:
.. rst-class:: classref-method
:ref:`Variant<class_Variant>` **segment_intersects_triangle**\ (\ from\: :ref:`Vector3<class_Vector3>`, to\: :ref:`Vector3<class_Vector3>`, a\: :ref:`Vector3<class_Vector3>`, b\: :ref:`Vector3<class_Vector3>`, c\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_Geometry3D_method_segment_intersects_triangle>`
Teste si le segment (``from``, ``to``) intersecte le triangle ``a``, ``b``, ``c``. Si oui, renvoie le point d'intersection en tant que :ref:`Vector3<class_Vector3>`. Si aucune intersection n'a lieu, renvoie ``null``.
.. rst-class:: classref-item-separator
----
.. _class_Geometry3D_method_tetrahedralize_delaunay:
.. rst-class:: classref-method
:ref:`PackedInt32Array<class_PackedInt32Array>` **tetrahedralize_delaunay**\ (\ points\: :ref:`PackedVector3Array<class_PackedVector3Array>`\ ) :ref:`🔗<class_Geometry3D_method_tetrahedralize_delaunay>`
Tétraédrise le volume spécifié par un ensemble discret de ``points`` dans l'espace 3D, de sorte qu'aucun point ne soit dans la sphère circonscrite d'au moins un tétraèdre résultant. Cette méthode renvoie un :ref:`PackedInt32Array<class_PackedInt32Array>` où chaque tétraèdre se compose de quatre indices de point consécutifs dans le tableau ``points`` (le tableau renvoyé aura ``n * 4`` éléments, où ``n`` est le nombre de tétraèdres trouvés). Si la tétraédrisation n'a pas réussi, un :ref:`PackedInt32Array<class_PackedInt32Array>` vide sera renvoyé.
.. |virtual| replace:: :abbr:`virtual (Cette méthode doit typiquement être redéfinie par l'utilisateur pour avoir un effet.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Cette méthode n'a pas d'effets de bord. Elle ne modifie aucune des variables membres de l'instance.)`
.. |vararg| replace:: :abbr:`vararg (Cette méthode accepte n'importe quel nombre d'arguments après ceux décris ici.)`
.. |constructor| replace:: :abbr:`constructor (Cette méthode est utilisée pour construire un type.)`
.. |static| replace:: :abbr:`static (Cette méthode n'a pas besoin d'instance pour être appelée, elle peut donc être directement appelée en utilisant le nom de la classe.)`
.. |operator| replace:: :abbr:`operator (Cette méthode décrit un opérateur valide à utiliser avec ce type en tant qu'opérande gauche.)`
.. |bitfield| replace:: :abbr:`BitField (Cette valeur est un nombre entier composé d'un masque de bits des options suivantes.)`
.. |void| replace:: :abbr:`void (Aucune valeur de retour.)`