Creer un Cylindre 3D en WPF

Signaler
Messages postés
22
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
14 décembre 2012
-
Messages postés
22
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
14 décembre 2012
-
 Bonjour,

Je cherche à tracer en C# un cylindre en 3D pour l'utiliser en WPF . Aurez vous des tutoriels intéressant la dessus.

Merci ,
Sondos

NB: VS 2005, .NET 3.0

4 réponses

Messages postés
168
Date d'inscription
jeudi 28 juin 2001
Statut
Membre
Dernière intervention
18 octobre 2008
6
Salut,

A priori, ça passe déjà par un composant Viewport3D dans lequel tu vas placer un mesh qui sera un cylindre.
Je pense que le reste est derrière ce lien : http://msdn.microsoft.com/fr-fr/magazine/cc163449.aspx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
46
Salut,

Regarde peut-etre dans les exemples du livre "3D Programming for windows" de Charles Petzold, téléchargeablesici.
Tu n'as peut etre pas de cylindre tout fait, mais il y a de quoi s'inspirer !

Mx
MVP C# 
Messages postés
22
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
14 décembre 2012

Article magnifique.
Le code pour générer le cylindre n'est pas simple à comprendre( l'algorithme) mais je vais me plonger dedans.
Merci;
Sondos
Messages postés
22
Date d'inscription
mardi 10 juillet 2007
Statut
Membre
Dernière intervention
14 décembre 2012

 Salut à tous,
Après avoir surmonté ma peur du code SimpleCylinderGenerator.cs, je suis actuellement entrain de crée un projet WPF pour faire apparaitre  un cylindre dans mon  Viewport3D.

Charles Petzold a effectué  a généré le Cylindre en XAML de la facon suivante (SimpleCylinderDemo project dans Foundation2007 sur http://msdn.microsoft.com/fr-fr/magazine/cc163449.aspx  ) :

<!-- Bind to resource and MeshGeometry property. -->
          <GeometryModel3D
              Geometry="{Binding Source={StaticResource cylinder},
                                Path=MeshGeometry, Mode=OneTime}">   

Moi je souhaite générer le cylindre en C# en non en XAML. Alors j'ai essayé de faire naivement :

 Petzold.MeshGeometries.Cylinder MyCylinder = new Petzold.MeshGeometries.Cylinder();
            //Points1 et Point2 Rayon1 ...
            myGeometryModel3D.Geometry = MyCylinder;
            myModel3DGroup.Children.Add(myGeometryModel3D);

et l'erreur est la suivantes:
Error    1    Cannot implicitly convert type 'Petzold.MeshGeometries.Cylinder' to 'System.Windows.Media.Media3D.Geometry3D'   

Ce qui me semble normal car je ne fait pas de binding.

Mes questions sont les suivante:

Comment faire un Binding en C# pour palier à mon problème?
Y'a-til un avantage  de Page sur Window dans le debut d'un fichier XAML?



ou <Window  xmlns=..../>

Merci Beaucoup,
Sondos