Blender (jusqu'à 2.49)
Python
Calculer la distance minimale d'un point à une ligne 
 (02/01/2006: Mise à jour pour blender 2.40)
    Début   Index
précédentScript Python
Script Python Suivant

Calculer la distance d'un point à une ligne
Voir aussi :
Comment trouver le point d'intersection de deux segments coplanaires 
Calculer le chemin le plus court entre deux lignes
 

# ==========================
#  Fichier test de la fonction 
#  DistancePtoLine(P0,P1,P2)
#  jm soler, Mai 2005
# ==========================

# ==========================
# Fonction DistancePtoLine(P0,P1,P2)
#        Entrée : P0, un point xyz 
#                 P1,P2   extremite d'un segment
#        Sortie : distance minimale ent P0 et [P1,P2] 
#
# FUNCTION DistancePtoLine(P0,P1,P2)
#        IN  : P0, a xyz point 
#              P1,P2   extremite d'un edge
#        OUT : minimal distance  between P0 and [P1,P2] 
# ==========================
def DistancePtoLine(P0,P1,P2):
    DimLINE=abs((P1[0]-P2[0])**2+
       (P1[1]-P2[1])**2+
       (P1[2]-P2[2])**2)**0.5
    if DimLINE>0:
       Ratio=((P0[0]-P1[0])*(P2[0]-P1[0]) +
              (P0[1]-P1[1])*(P2[1]-P1[1]) + 
              (P0[2]-P1[2])*(P2[2]-P1[2]))/DimLINE**2
       P4=[0.0,.0,.0] 
       P4[0] = P1[0] + Ratio*(P2[0]-P1[0])
       P4[1] = P1[1] + Ratio*(P2[1]-P1[1])
       P4[2] = P1[2] + Ratio*(P2[2]-P1[2])
       MinDIST=abs((P4[0]-P0[0])**2+
              (P4[1]-P0[1])**2+
              (P4[2]-P0[2])**2)**0.5
    elif  DimLINE==0 :
        MinDIST=abs((P1[0]-P0[0])**2+
             (P1[1]-P0[1])**2+
             (P1[2]-P0[2])**2)**0.5
    return MinDIST,P4

import Blender

ME=Blender.Object.Get('Plane').getData()
for v in ME.verts:
   print v.co
d,P=DistancePtoLine(ME.verts[2],ME.verts[0],ME.verts[1])
v=Blender.NMesh.Vert(P[0],P[1],P[2])
ME.verts.append(v)
# 02/01/2006: Mise à jour pour blender 2.40
if Blender.Get('')>237:
   ME.addEdge(ME.verts[-1], ME.verts[2])
else:
    f=Blender.NMesh.Face()
    f.v.append(ME.verts[-1])
    f.v.append(ME.verts[2])
# 02/01/2006: Mise à jour pour blender 2.40 fin
ME.faces.append(f)
ME.update()
 


 
précédentScript Python
 Script Python Suivant
Vers le  Haut de page

Les questions concernant cette page  peuvent être posées sur  :
 news://news.zoo-logique.org/3D.Blender


 

 

Livre en français
Blender : apprenez, pratiquez, Créez, livre, Ed. Campus Press, coll. Starter Kit
Blender Starter Kit

Forum
FAQ
Lexique
Didacticiels
Compilations
Blender2KT
Débuter
Modelage
Blender python
Materiaux
Lumière
Animation
API python (eng)
Archives nzn
Statistiques
Doc flash Sculptris
Galerie Sculptris

mon site de démos sur youtube