Page 1 sur 1

[MY-AL] Utilisation de DistancePointLine [RESOLU]

Publié : 08 Mars 2022 16:19
par Frederic
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

Re: [MY-AL] Utilisation de DistancePointLine

Publié : 08 Mars 2022 16:26
par Frederic
C'est un utilitaire d'édition , zut
Je laisse le post pour les autres .

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

Publié : 08 Mars 2022 16:42
par boubouk50
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.

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

Publié : 08 Mars 2022 17:11
par jmhoubre
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);

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

Publié : 09 Mars 2022 20:12
par Frederic
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