bumbob
Messages postés11Date d'inscriptionmardi 17 mars 2009StatutMembreDernière intervention23 octobre 2009
-
20 avril 2009 à 15:34
bumbob
Messages postés11Date d'inscriptionmardi 17 mars 2009StatutMembreDernière intervention23 octobre 2009
-
21 avril 2009 à 15:18
Bonjour,
je débute en programmation c++. Je cherche à définir un plan, sans le tracer, dans l'espace. Il doit être défini de manière continue. Pour cela, je dispose des coordonnées du vecteur normal a ce plan et d'un point du plan. Mathématique le plan est defini par une equation de la forme ax+by+cz+d=0 avec [a,b,c] un vecteur normal au plan.
Comment puis ecrire cela en code c++ ?
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 20 avril 2009 à 18:47
Salut,
Bin une classe "Plan" ou ce que tu veux avec des champs a, b et c et d.
Ou une classe "Plan" contenant une instance de classe "Vecteur" et une instance de classe "Point"...
Tout dépend de ce que tu veux faire par la suite...
bumbob
Messages postés11Date d'inscriptionmardi 17 mars 2009StatutMembreDernière intervention23 octobre 2009 20 avril 2009 à 18:53
Merci pour votre réponse,
mon souci est dans l'ecriture meme de cette classe. Je ne sais comment la construire. Par la suite, je souhaite utiliser des fonctions de la bibliotheque sisl pour determiner les intersections de ce plan avec des courbes. Des fonctions permettant de faire cel sont deja definies dans la bibliotheque.
Je voudrais donc simplement savoir comment je peux faire pour, partant du vecteur orthogonal et du point, obtenir un plan.
bumbob
Messages postés11Date d'inscriptionmardi 17 mars 2009StatutMembreDernière intervention23 octobre 2009 21 avril 2009 à 12:26
Bonjour,
mon niveau en c++ est très faible. Cependant, ce n'est pas la partie mathématique du probleme qui me fera défaut.
Je comprend, avec le tuto sur les classes comment définir un vecteur, avec sorties des coordonnées. Mais je ne vois pas comment on peut étendre cela a une définition de plan. Mathématiquement, je sais comment définir le plan avec les coordonnées d'un vecteur normal et un point. Mais comment générer ce plan en langage c++ afin de l'utiliser ensuite en tant que surface.
Je suppose qu'il va falloir du void car rien en sortie, mais ensuite...
Ou alors, pouvez vous m'orienter vers un site d'aide en c++ specifique aux applications en geometrie.
Merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 21 avril 2009 à 14:46
Comment dire...
On est pas dans matrix !
Avoir une classe plan, c'est avoir une classe qui contient des information sur ce plan et des méthodes pour manipuler ces informations. C'est pas un objet dans un univers 3D infini où je ne sais quoi d'autre. Un processeur de PC ça sait déplacer de la mémoire et faire plus, moins, multiplier et c'est tout. Et encore, il peut se tromper dans les résultats. Pour afficher des trucs à l'écran, il écrit des données précises à des emplacement précis de la mémoire qui correspondent à des bus. Pour faire ça dans du code, il faut utiliser une librairie quelconque de graphisme.
Si tu regardes la doc de SISL, les fonctions traitant des plans prennent en paramètre des points et des normales pour la définition de plan. Il suffit donc que ta classe contienne ces informations.
Un bête truc dans ce genre :
<hr size="2" width="100%" />#include
class Vector: public Point
{
public:
Vector(double x, double y, double z):
Point(x, y, z) {}
};
class Plan
{
private:
Vector _normale;
Point _point;
public:
Plan(Vector normale, Point point):
_normale(normale), _point(point) {}
};
int main()
{
Vector normale(12, 12, 12);
Point point(11, 11, 13);
Plan plan(normale, point);
return 0;
}
<hr size="2" width="100%" />Faut pas non plus chercher à faire une classe plan qui permet de faire tout un tas de truc que l'on utilisera jamais. Faut faire ce dont on a besoin.