J'ai une scène 3D assez simple qui est construit à peu près comme ceci:Obtenez Point3D par rapport au filet dans WPF
<Viewport3D>
<ModelVisual3D>
<ModelVisual3D.Content>
<Model3DGroup x:Name="Group1">
<GeometryModel3D x:Name="m1">...</GeometryModel3D>
</Model3DGroup>
<Model3DGroup x:Name="Group2">
<GeometryModel3D x:Name="m2">...</GeometryModel3D>
</Model3DGroup>
<Model3DGroup x:Name="Group3">
<GeometryModel3D x:Name="m3">...</GeometryModel3D>
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
Et au fond chacune des 3 années GeometryModel3D a son propre Mesh, Transforms, etc ...
Lorsque je clique sur le Viewport3D, tout ce que j'obtiens est le point dans l'espace 3D sur lequel j'ai cliqué lorsque j'ai touché quelque chose. Ce que je suis vraiment après, c'est le point sur le mesh que je frappe dans l'espace 3D (pas un seul Point sur le mesh, mais plutôt le Point3D).
Le but pour moi est d'ajouter un nouveau matériau au clic sur Mesh au point exact où l'utilisateur clique. Et je ne peux pas faire cela si je n'ai accès qu'au Point3D par rapport à Viewport3D (à cause de toutes les transformations sur les maillages etc ...)
Un exemple pourrait être que la géométrie m1 est un rectangle de forme, avec quelques légères rotations et transformé l'axe Y en haut de l'écran.
Lorsque je clique sur le bas du filet, je voudrais obtenir XY (Z pas nécessaire ici) point par rapport à l'espace de coordonnées local de ce maillage ...
J'espère que toutes les marques sens, et merci pour toute aide que vous pouvez donner
Mark
Matrice opération inverse pourrait probablement aider? – Makubex