2010-04-07 5 views
2

Je souhaite déterminer si un point P (x, y, z) est à l'intérieur d'un cercle 2D dans l'espace 3D défini par son centre C (cx, cy, cz), rayon R, et perpendiculaire au plan du cercle se trouve sur N.Déterminer si le point 3D est à l'intérieur du cercle 2D

je sais que le point P se trouvant sur un cercle 2D dans l'espace 3D est définie par:

P = R * cos (t) U + R sin (t) * (N x U) + C

U est un vecteur unitaire du centre du cercle à n'importe quel point du cercle. Mais étant donné un point Q, comment savoir si Q est sur ou dans le cercle? Quel est le paramètre approprié t à choisir? Et quelles coordonnées dois-je comparer au point Q pour voir si elles sont dans le cercle?

Merci.

+0

Vous voulez clarifier votre notation? Quel est ce ** bruit ** environ? On dirait que cela pourrait être la grandeur d'un vecteur, mais cela encourage les autres à fournir des réponses utiles lorsque votre question est clairement présentée. –

+0

J'ai essayé de les mettre en gras mais ils ne seraient pas gras ....? le ** U ** est un vecteur en gras, indiquant un vecteur. Pareil pour ** N **. EDIT: J'ai mis en gras les lettres en les sortant de la section "code" – Myx

+0

Avez-vous essayé de rechercher des informations sur la sélection de la souris 3D? – HyperCas

Répondre

10

Projet P sur le plan contenant le cercle, appelez P '. P sera dans le cercle si et seulement si | P - P '| = 0 et | P '- C | < R.

+1

et si je souhaite inclure la limite du point dans mon chèque, puis-je vérifier | P-C | <= R et | P-P '| = 0? – Myx

+0

http://en.wikipedia.org/wiki/3D_projection – HyperCas

+0

Vraisemblablement, toutes vos coordonnées sont des nombres à virgule flottante, ce qui signifie que vous devriez être prudent lorsque vous faites des choses comme "| P - P '| = 0". Il sortira rarement à exactement zéro, donc vous pouvez faire quelque chose comme "| P - P '| MatrixFrog

3

Je ferais ceci en le divisant en deux parties:.

  1. savoir si le point est sur le même plan que le cercle (à savoir si le produit scalaire du vecteur allant de la centre à la pointe et la normale est zéro)

  2. Déterminez si c'est à l'intérieur de la sphère contenant le cercle (c'est-à-dire si la distance entre le centre et le point est plus petite que le rayon).

Questions connexes