[MY-AL] Utilisation de DistancePointLine [RESOLU]

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Frederic
Messages : 36
Inscription : 24 Déc 2021 18:25

[MY-AL] Utilisation de DistancePointLine [RESOLU]

Message par Frederic » 08 Mars 2022 16:19

Bonjour.

J'ai besoin d utiliser cette fonction " HandleUtility.DistancePointLine " mais je n'ai pas les notion de static , internal static
je me suis toujours contenter de void mafonction() :roll:

j'ai trouvé deux exemples mais ca ne me parle pas, comment utiliser ca dans une simple fonction ?

Code : Tout sélectionner

        internal static float DistanceToLineInternal(Vector3 point, Vector3 p1, Vector3 p2)
        {
            float retval = DistancePointLine(point, p1, p2);
            if (retval < 0)
                retval = 0.0f;
            return retval;
        }

Code : Tout sélectionner

        public static float DistancePointLine(Vector3 point, Vector3 lineStart, Vector3 lineEnd)
        {
            return Vector3.Magnitude(ProjectPointLine(point, lineStart, lineEnd) - point);
        }
comment utiliser ca dans une simple fonction ?
merci
Dernière édition par Frederic le 08 Mars 2022 16:27, édité 1 fois.

Frederic
Messages : 36
Inscription : 24 Déc 2021 18:25

Re: [MY-AL] Utilisation de DistancePointLine

Message par Frederic » 08 Mars 2022 16:26

C'est un utilitaire d'édition , zut
Je laisse le post pour les autres .

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [MY-AL] Utilisation de DistancePointLine [RESOLU]

Message par boubouk50 » 08 Mars 2022 16:42

Dans ce cas, il faut trouver la fonction désirée.
La distance minimale entre un point et une ligne je suppose? Dans un espace 3D, cela sera la distance entre un point et un plan.

Code : Tout sélectionner

var pointOnPlane = Vector3.ProjectOnPlane(yourObject.position, plane.up);
var closestDistance = Vector3.Distance(yourObject.position, pointOnPlane);
Donc d'abord trouver la normale au plan (le vecteur perpendiculaire à la ligne passant par le point) -> Là, c'est la partie difficile, mais ça se fait à partir des 3 points. (Je te cherche ça)
Ensuite calculer la position du point projeté sur le plan.
Ensuite, calculer la distance entre ton point et le point projeté.

Du coup, j'ai trouvé cette solution:
https://answers.unity.com/questions/626 ... point.html
Je suppose que le ray peut-être défini par 2 vector3 qui définissent la ligne.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
jmhoubre
Messages : 851
Inscription : 05 Oct 2019 22:05

Re: [MY-AL] Utilisation de DistancePointLine [RESOLU]

Message par jmhoubre » 08 Mars 2022 17:11

Bonjour,

internal est un modificateur d'accès comme private ou public. Un type ou un membre internal est accessible seulement à l'intérieur du même assembly. Pour plus de détails, voir la documentation Microsoft, et une comparaison des différents modificateurs.

Static indique que le membre est un membre de classe. Il permet par exemple d'utiliser une fonction ou une variable de cette classe sans instancier la classe. C'est ce que nous faisons tous très souvent en utilisant Mathf :

Code : Tout sélectionner

float perimeter = Mathf.PI * 2 * radiusI;
float x = Mathf.Sin (2* Mathf.PI * y);
Dernière édition par jmhoubre le 09 Mars 2022 22:08, édité 1 fois.

Frederic
Messages : 36
Inscription : 24 Déc 2021 18:25

Re: [MY-AL] Utilisation de DistancePointLine [RESOLU]

Message par Frederic » 09 Mars 2022 20:12

J'ai trouvé cette solution pour la distance point ligne,
j'aligne mes vecteur

Code : Tout sélectionner

transform.rotation = transform.parent.rotation;
et je fais un Physics.Raycast hit

Et pour static et internal, je sens que ca va me plaire , je commence à avoir pas mal de scripts et au début j'ai pas fais attention et il a des scripts qui se se croisent

Merci, bonne soirée

Répondre

Revenir vers « Scripting »