Distance entre un point et une hélice

Discutez d'informatique ici !
YvesTousquet
Messages: 5
Enregistré le: 13 Fév 2021, 16:43

Distance entre un point et une hélice

par YvesTousquet » 13 Fév 2021, 16:54

Bonjour,

Voici le code que j'utilise pour déterminer la distance entre un point p et une hélice en 3D en hlsl et qui ne marche pas du tout.

La démarche consiste a projeter le point p sur le cylindre sur lequel est tracée l'hélice. A partir de là on se retrouve avec un point 2d à projeté sur la droite tracée par l'hélice sur le cylindre, puis enfin à récupérer les coordonnées 3d de ce point.

Code: Tout sélectionner
        // a = rayon    b = fréquence   c = décalage sur z      d = décalage sur x et y
        float
            x = p.x, y = p.y, z = p.z,
            a = sphere.x, b = sphere.y, c = 1 / Cycle, d = sphere.z;

// Projection du point sur le cylindre de l'hélice le long de l'axe z
        float2 n = normalize(float2(x - d, y - d));
               
// coordonnée cylindriques
        float
            X = atan2(n.y, n.x),   // [-pi, pi]
            Y = z % b,             // [0,b];

// projection des coordonnées cylindrique sur le droite dessinée par l'hélice sur le cylindre
        float2
            v = normalize(float2(2 * PI, b)),
            H = dot(float2(X, Y), v) * v;
// récupération du point en 3d de l'hélice
        float3 M = float3(a * cos(H.x) + d, a * sin(H.x) + d, b * floor(z / b) + H.y * b + c);

        return length(p - M);


Merci



 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite